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

局部与全局,C语言入门教程

#include <stdio.h>

int x = 77;

void fn1()

{

    printf("fn1(): x=%d\n", x);       

}

int main()

{

    int x = 10;

    if(x>0)

    {

        int x = 100;

        x /= 2;

        printf("if语句内, x=%d\n", x);       

    }

    printf("main方法内, x=%d\n", x);

    fn1();

    return 0;

}

为什么if下面的变量int x =100加个int就能影响到main方法内的值?不加int时 if方法内和main方法内的结果都是50,加了变量类型后main方法的值就变为了10,不懂。。


正在回答

5 回答

给不了你们好评了抱歉?

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

...这个楼主好像是我上个月用的小号哈哈,现在忘密码了。。

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

我的理解是,变量在哪个花括号{}内定义,就在那个花括号内有效,不知是否正确。

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

在if语句中未重新定义X的局部变量 所以 if语句里的内容是在main()中运算,未进行独立运算

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

不加int就相当于把100的值赋给了x再除以二,覆盖了原来的10,加了int就是在if里面重新定义的一个局部变量x,

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

举报

0/150
提交
取消
C语言入门
  • 参与学习       926290    人
  • 解答问题       20799    个

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

进入课程

局部与全局,C语言入门教程

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