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

关于X的赋值

#include <stdio.h>

int x = 77;

void fn1()

{

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

}

int main()

{

    int x = 10;  //x在这里赋值为10,在下一行判定为大于所以运行if括号里的代码

    if(x>0)

    {

        int x = 100; //x被赋值为100

        x /= 2; //在这里计算到结果x=50

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

    } //跳出if语句,在这里x是否重新被赋值为10

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

    fn1();

    return 0;

}

运行结果:

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


在运行完if语句后跳出是否重新被赋值为x=10??

正在回答

2 回答

最开头的那个值为77的x  和 main函数中初值为10的xif中的那个x 是三个不同的变量,只是同名而已。

在if中改变的是if中的那个x值,不会影响到main中的那个x,也不会影响到前面的那个x,所以没有什么“重新赋值”一说。

只有fn1函数中没有再次定义x,所以它用的是最上面的那个x,打印出的就是77了。

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

叔的学习之路 提问者

非常感谢!
2015-10-02 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

关于X的赋值

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