设为首页 加入收藏

TOP

局部变量和全局变量的一些问题
2012-11-10 11:50:49 来源: 作者: 【 】 浏览:341
Tags:局部 变量 全局 一些 问题
    一 局部变量
   
    局部变量也称为内部变量。 局部变量是在函数内作定义说明的。其作用域仅限于函数内,离开该函数后再使用这种变量是非法的。
   
    1)  主函数中定义的变量也只能在主函数中使用,不能在其它函数中使用。同时,主函数中也不能使用其它函数中定义的变量。因为主函数也是一个函数,它与其它函数是平行关系。这一点是与其它语言不同的,应予以注意。
   
    2)  形参变量是属于被调函数的局部变量,实参变量是属于主调函数的局部变量。被调函数和主调函数是平行的。
   
    3)  允许在不同的函数中使用相同的变量名,它们代表不同的对象,分配不同的单元,互不干扰,也不会发生混淆。如在前例中,形参和实参的变量名都为 n,是完全允许的。
   
    4)  在复合语句中也可定义变量,其作用域只在复合语句范围内。
   
    二 全局变量
   
    全局变量也称为外部变量,它是在函数外部定义的变量。它不属于哪一个函数,它属于一个源程序文件。其作用域是整个源程序。在函数中使用全局变量,一般应作全局变量说明。
   
    如果同一个源文件中,外部变量与局部变量同名,则在局部变量的作用范围内,外部变量被“屏蔽”,即它不起作用。
   
    #include<stdio.h>
   
    int a=3,b=5;     /*a,b为外部变量*/
   
    max(int a,int b) /*a,b为外部变量*/
   
    {
   
    int c;
   
    c=a>b a:b;
   
    return(c);
   
    }
   
    main()
   
    {
   
    int a=8; //这个a与max(a,b)中的形参a都属于局部变量,属于平行关系,代表不同的对象。
   
    printf(“%d\n”,max(a,b));
   
    }
   
    结果为8而不是5说明了屏蔽了全局变量。
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C语言运算符优先级与结合方向 下一篇模块化C语言编程

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: