C语言中全局变量与局部变量

C语言中全局变量与局部变量的作用域介绍。

C语言中全局变量与局部变量

一、全局变量

全局变量既可以是某对象函数创建,也可以是在本程序任何地方创建。全局变量是可以被本程序所有对象或函数引用。以下定义方法中定义的x就是被定义为了全局变量,全局变量可以被全局内的函数引用。

#include <stdio.h>
int x=123;
int main()

同时定义了全局变量x=123后任然可以再定义一个局部变量x=456。此时程序不会出错。例:

#include <stdio.h>
int x=123;
int main()
{
	int x=456;
	printf("x=%d",x);
	return 0;
}

运行结果:
在这里插入图片描述

二、局部变量

局部变量,也称内部变量,是指在一个函数内部或复合语句内部定义的变量。局部变量的作用域是定义该变量的函数或定义该变量的复合语句。局部变量的生存期是从函数被调用的时刻算起到函数返回调用处的时刻结束。在一个函数内部,可以在复合语句中定义变量,这些变量只在本复合语句中有效,这种复合语句也成为“分程序”或“程序块”。
局部变量只能定义在函数内不能定义在函数外。局部变量有以下两种定义方式:

#include <stdio.h>
int main(int x)//定义局部变量x
{
	int y=1;//定义局部变量y并将y赋值为1
	x=2;//将x赋值为2
	printf("x=%d,y=%d",x,y);//输出x和y的值
	return 0;
}

运行结果:
在这里插入图片描述

三、总结

1. 全局变量因为可以被所有函数引用,所有他的生命周期长于局部变量。生命周期变长后占用内存也会更多,因为无法及时的释放。
2. 当全局变量和局部变量名字相同时取值取局部变量(从上面的例子中可以看出)原因是全局变量的优先级低于局部变量。
3.在不必要时不使用全局变量,因为在程序设计中,再划分模块式要求模块“高内聚,低耦合”,即模块的功能要单一,与其他模块的相互影响要经量少,而用全局变量是不符合这个原则的。一般要求把C程序中的函数做成一个相对的封闭体,处理可以通过“实参——形参”的渠道与外界发生联系外,没有其他渠道。这样的程序移植性好,可读性强。
4. 使用全局变量过多会降低程序的清晰性,人们往往难以清楚地判断出每个瞬时各个外部变量的值。由于在各个函数执行是都可能改变外部变量的值,因此程序容易出错。

----------------------------------分割线----------------------------------
本人承诺以上文章为本人编写,绝非复制粘贴。写在这里一是为了防止以后自己将知识点遗忘,二是为了和大家分享我自己对这个知识点的理解。如果我的文章中有错误希望看到后可以指正,感激不尽!


版权声明:本文为qq_42942881原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。