为什么我if语句中的 intx=100;删除,输出结果会是5,5,77。我觉得应该是是5,10,77

来源:5-10 局部与全局

松下闻雪落

2016-06-16 16:00

这是为什么呢

写回答 关注

4回答

  • 大道谋秦
    2016-07-13 16:46:13
    已采纳

    删除后 代入if语句中的是x=10进行运算


  • 斟酒独酢
    2016-09-04 22:59:36
    int main()
    {
    int x = 10;
    if(x>0)
    {
    x=100;           //引用x全局变量进入操作运算,覆盖全局变量x  得出  x1=50
    int x=100;       //定义x为局部变量与x全局变量无关,不覆盖全局变量x  得出  x2=10
    x /= 2;
    printf("if语句内, x=%d\n", x); 
    }
    printf("main方法内, x=%d\n", x);
    fn1();
    return 0;
    }


  • 淡褐色双瞳
    2016-07-14 16:04:28

    5,5是对的啊,因为你在main函数中首先赋值10了,所以不管if语句里面重新给x赋值与否,main和if语句中的x都是一样的。

  • 奋斗的油菜
    2016-06-18 09:44:52

    具体还得看上文的操作

    松下闻雪落

    这是原代码,我把if中的int x=100;删除后输出5,5,77

    2016-06-18 11:10:56

    共 2 条回复 >

C语言入门

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

926023 学习 · 20793 问题

查看课程

相似问题