搜索
查看: 671|回复: 2
打印 上一主题 下一主题

关于全局变量和局部变量的优先顺序解析

[复制链接]
跳转到指定楼层
楼主
发表于 2016-2-18 21:50:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如题 先上代码
[mw_shl_code=c,true]#include <stdio.h>
int a=1;
int main()
{
        int a=0;
        printf("%d",a);
        return 0;
} [/mw_shl_code]

上面这个代码的运行结果是0

因为在全局变量中 虽然相同的全局变量不能重复定义  但是却可以定义与全局变量同名的局部变量

例如上面的

全局变量a=1         局部变量a=0

当定义与全局变量同名的局部变量时

全局变量会暂时失效

这就可以解释为什么打印出来的结果是0了

本人也是新手 希望有帮助

虽然代码简短 但在以后做小项目时定义全部变量 与 局部变量时 防止冲突是很重要的(因为这个编译器并不会报错)
沙发
发表于 2016-2-21 19:15:30 | 只看该作者
不止是全局和局部
某个作用域内再定义一个变量,总是会屏蔽上层作用域的同名变量
板凳
发表于 2016-2-21 19:19:02 | 只看该作者
rosynirvana 发表于 2016-2-21 19:15
不止是全局和局部
某个作用域内再定义一个变量,总是会屏蔽上层作用域的同名变量

rosynirvana大神回来了~!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表