
C语言中全局变量的储存类别是静态存储区。
由某对象或某个函数所创建的变量通常都是局部变量,只能被内部引用,而无法被其它对象或函数引用。
全局变量既可以是某对象函数创建,也可以是在本程序任何地方创建。全局变量是可以被本程序所有对象或函数引用。
扩展资料:
使用全局变量会占用更多的内存(因为其生命期长),不过在计算机配置很高的今天,这个不应该算什么问题,除非使用的是巨大对象的全局变量,能避免就一定要避免。
使用全局变量程序运行时速度更快一些(因为内存不需要再分配),同样也快不了多少。对于局部变量的名字空间污染,这个在不使用太多变量时是可以避免的。
当全局变量与局部变量重名的时候,起作用的是局部变量,全局变量被屏蔽掉。还可以用extern在函数外对全局变量声明,使全局变量的作用域从声明处到文件的结束。
在所有函数外部定义的变量称为全局变量(Global Variable),它的作用域默认是整个程序,也就是所有的源文件,包括 .c 和 .h 文件。
例如:
int a, b //全局变量
void func1( )
{
//TODO:
}
float x,y //全局变量
int func2( )
{
//TODO:
}
int main( )
{
//TODO:
return 0
}
a、b、x、y 都是在函数外部定义的全局变量。C语言代码是从前往后依次执行的,由于 x、y 定义在函数 func1() 之后,所以在 func1() 内无效;而 a、b 定义在源程序的开头,所以在 func1()、func2() 和 main() 内都有效。
定义在函数体外部的变量叫全局变量,
要定义全局变量你只要把变量定义在
所有函数外部即可。
要注意的是,全局变量只对它定义位
置以下的函数可见。
#include<stdio.h>void f1()
void f2()
int y=100
int main()
{
printf("%d\n\n",y)
//printf("%d\n",x)这不可以读x,x对main()不可见
f1()
f2()
return 0
}
int x
void f1()
{
x=200
}
void f2()
{
printf("%d\n",x)
printf("%d\n",y)
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)