变量的作用域和存储类别

变量作用域是指程序中声明的变量在程序的哪些部分是可用的。从变量作用域的角度,变量分为局部变量和全局变量两种

  局部变量在函数或复合语句内部定义的变量。该变量只在本函数或复合语句内部范围内有效。形参也是局部变量。

局部变量有助实现信息隐蔽,即使不同函数中使用了同名变量,也互不影响,因为它们占不同内存单元,就象不同班级有相同姓名的学生一样。这相当于局部变量增加了程序的灵活性和可移植性。

全局变量在函数体外定义的变量。全局变量的作用域是从它的定义行到整个程序的结束行。



从变量的生存期来分,变量分为静态存储方式动态存储方式。  

静态变量这种类别的变量在源程序运行期间,从开始到结束的整个过程一直占用固定存储空间。

动态变量这种类别的变量当进入它的函数或复合语句时才分配存储空间,一旦离开它所在的函数或复合语句则立即释放所占的存储空间。


计算机的内存中储存用户数据的空间分为四部分

第一 栈空间

局部变量 函数形参 自动变量  特点先进后出 系统管理

第二 堆空间

malloc calloc ralloc   特点先进先出 用户管理

第三全局数据区

1 bss 未初始化的全局变量

2 ordata 常量

3 静态数据区 初始化的全局变量 static 修饰变量

第四 代码段



全局变量与局部变量的区别

作用域  全局变量程序结束后释放  局部变量 函数运行结束后释放

储存    全局变量储存在全局数据区的  局部变量储存在栈空间

初始化  全局变量不定义时为0   局部变量为随机分配


当全局变量与局部变量同名时 局部变量起作用








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值