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

来源:5-10 局部与全局

KooFung

2019-02-25 11:54

在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回答

  • 慕无忌4501192
    2019-02-25 15:39:39
    已采纳

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

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

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926210 学习 · 20797 问题

查看课程

相似问题