问答详情
源自:5-10 局部与全局

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

这是为什么呢

提问者:松下闻雪落 2016-06-16 16:00

个回答

  • 大道谋秦
    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

    具体还得看上文的操作