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

局部变量 全局变量

这一题中x的值在不同的程序段是如何变化的  应该以怎样一个原则去看其值

提问者:InternetTall 2016-03-12 22:36

个回答

  • 毛利小五郎
    2016-03-13 01:41:53
    已采纳

    #include <stdio.h>

    int x = 77;//声明全局变量x=77

    void fn1()

    {

        printf("fn1(): x=%d\n", x);     //此处x是局部变量,在fn1()中未赋值,因此这时x的值跟随全局变量,为77

    }

    int main()

    {

        int x = 10;//main函数中的变量,此时x的值为10

        if(x>0)

        {

            int x = 100;//if 块中的x变量,值为100

            x /= 2;//x=x/2,值为50

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

        }

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

        fn1();

        return 0;

    }

    这里是局部变量和全局变量的区别,在源程序的某个部分,局部变量的优先级是高于全局变量的。同时,在某个程序段中,全局变量和局部变量的名字是可以相同的。