赞
踩
外部变量和全局变量具有什么关系呢?
先说结论:
全局变量是一种外部变量,取决于外部变量放在哪里,如果放在程序的开头,那就是全局变量。
具体的验证过程如下:
#include <stdio.h> int p=10; int q=90; void function1() { printf("function1:%d\n",p); printf("function1:%d\n",q); } void function2() { printf("function2:%d\n",p); printf("function2:%d\n",q); } int main() { function1(); function2(); printf("main:%d\n",p); printf("main:%d\n",q); }
上述代码的编译结果是
若将p和q的位置放在function1和function2之间,代码如下:
#include <stdio.h> void function1() { printf("function1:%d\n",p); printf("function1:%d\n",q); } int p=10; int q=90; void function2() { printf("function2:%d\n",p); printf("function2:%d\n",q); } int main() { function1(); function2(); printf("main:%d\n",p); printf("main:%d\n",q); }
再看看编译结果:
在4和5行均有报错问题,说明此时p和q直对其下面的代码产生作用,但对于其上方的代码不起作用。即p和q不是全局变量。
关于“全局变量”,在编程时,使用全局变量确实会便捷一些,但有隐藏风险——所有函数都可以操作这个变量。这里涉及到多线程运行的知识点,现在了解这些就够了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。