全局变量和局部变量的区别_C语言局部变量和全局变量的区别

局变量是使用相同的内存块在整个类中存储一个值。

全局变量的存在主要有以下一些原因:

cdaaa8e8c22f0bc3b7e34aaa74a09a58.png

1,使用全局变量会占用更多的内存(因为其生命期长),不过在计算机配置很高的今天,这个不成为什么问题,除非使用的是巨大对象的全局变量,能避免就一定要避免。

2,使用全局变量程序运行时速度更快一些(因为内存不需要再分配),同样现在也快不了多少。

3,对于局部变量的名字空间污染,这个在不使用太多变量时是可以避免的。

a140ee437e50f57c6d76ae2b90f9a465.png

总之,全局变量可以使用,但是全局变量使用时应注意的是尽可能使期名字易于理解,而且不能太短,避免名字空间的污染;避免使用巨大对象的全局变量。

局部变量说明:

在程序中,只在特定的过程或函数中可以访问的变量,是相对与全局变量而言的。

全局变量也称为外部变量,是在函数的外部定义的,它的作用域为从变量定义处开始,到本程序文件的末尾。全局变量全部存放在静态存储区,在程序开始执行时给全局变量分配存储区,程序行完毕就释放。

局部变量可以和全局变量重名,但是局部变量会屏蔽全局变量。在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。根据使用范围来区分的。

acdcdbf23441fd596a90e4043d7f6a2a.png

1.局部变量

他是 指在函数内部定义的变量 作用域为定义局部变量的函数 也就是说他只能在定义他的函数中使用

最值得注意的是 只有在程序执行到定义他的模块时才能生成,一旦执行退出该模块则起变量消失

func ()

{

int x; 局部变量x的作用域 很明确

......

}

2.全局变量

在程序执行的过程中一直有效

intx=1;

func ()

{

x=x+1;

}

func1 ()

{

x=x-1;

}

main ()

{

}

由此不难看出整型x的作用范围

对于全局变量 如果在定义的时候不做初始化 则系统将自动为起赋值 数值型为0

字符型为空'0'

3fe3f8400a9aafb9fad6eb28820fd259.png

全局变量的弊端 增加内存开销 降低函数的通用性

定义全局变量时,理想的位置是在文件的开头,当这些函数以及同一个程序中的其他源程序文件中的某些函数需要使用该全局变量时,在函数内部对该变量使用extern 加以说明,说明他是外部的。

(这里还要做详细的讲解)

main ()

{externint a,b;

printf ("mIn is %dn",min(a,b));

}inta=1,b=2;int min (x,y)int x,y;

{int z;

z=x

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值