在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
在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
2019-02-25
舉報
2019-02-25
代碼塊作用域主要靠 { }來區分.
因此 if里面是一個作用域 ,在main里面 原本的x指向同一內存地址,只要是改變,x就會改變,后來加了int說明在if作用域重新開辟一個內存地址x,此時是另一個內存地址,main里面第一個x的內存地址由于命名相同被隱藏,不作用于if作用域中,但是作用于main之中,所以才會有了這種情況