为了账号安全,请及时绑定邮箱和手机立即绑定

在if内x=100前面加int也该等于50才对啊请大佬帮忙解惑

在main内的x属于局部变量没错吧,
为什么在if内x=100前面没有添加int之前main的x等于50
添加int后为什么加了int后main内的x就等于10了
,没道理啊, main内的x是局部变量按道理if内的x有就是x=10的同一个变量,
在if内x=100前面加int也该等于50才对啊

if语句内, x=50
main方法内, x=10
fn1(): x=77


正在回答

1 回答

代码块作用域主要靠 { }来区分.

因此 if里面是一个作用域 ,在main里面 原本的x指向同一内存地址,只要是改变,x就会改变,后来加了int说明在if作用域重新开辟一个内存地址x,此时是另一个内存地址,main里面第一个x的内存地址由于命名相同被隐藏,不作用于if作用域中,但是作用于main之中,所以才会有了这种情况

19 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

在if内x=100前面加int也该等于50才对啊请大佬帮忙解惑

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信