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

5-10中的问题,有关局部变量和全局变量

#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;
}

这段代码中fn1()输出的是77,而不是10.这两个是不是都是全局变量?两个的作用范围是哪里?

提问者:喜欢海其实是喜欢浪 2016-02-16 17:35

个回答

  • 侠客岛的含笑
    2016-02-21 12:28:55
    已采纳

    你一共定义了两个函数fn1和main;int x=77在函数的外部,这个应该是全局变量,所以他的作用范围是全局

    而int x=10和int x=100这两个我觉得都应该是局部变量,因为他们在函数内部。

    还有就是如果一个函数内部有一个相同的变量的时候,函数内的变量优先选择,这里指的也就是局部变量了

  • 喜欢海其实是喜欢浪
    2016-02-16 17:48:40

    ....