当前位置:   article > 正文

5.6 外部变量+全局变量+案例实战_全局变量和对外变量

全局变量和对外变量

外部变量和全局变量具有什么关系呢?

先说结论:

全局变量是一种外部变量,取决于外部变量放在哪里,如果放在程序的开头,那就是全局变量。

具体的验证过程如下:

#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);
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

上述代码的编译结果是
在这里插入图片描述若将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);
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

再看看编译结果:
在这里插入图片描述在4和5行均有报错问题,说明此时p和q直对其下面的代码产生作用,但对于其上方的代码不起作用。即p和q不是全局变量。

关于“全局变量”,在编程时,使用全局变量确实会便捷一些,但有隐藏风险——所有函数都可以操作这个变量。这里涉及到多线程运行的知识点,现在了解这些就够了。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/机器思考机器/article/detail/63293
推荐阅读
相关标签
  

闽ICP备14008679号