c语言 函数变量

c语言定义了四种存储属性即自动变量,外部变量,静态变量和寄存器变量

变量保存时间来分:从时间的角度,分为静态存储和动态存储两种情况。

变量作用域范围,从空间来分,全局变量和局部变量。

1.自动变量

函数中的局部变量,不声明为static,都是动态地分配存储空间的。调用该函数时,系统分配存储空间,函数结束时,自动释放存储空间。用auto声明。

2.外部变量(全局变量)

在函数的外部定义的,作用域从变量定义处开始,到本程序文件的末尾。如果想在定义点引用外部变量,需用extern进行声明。

3.静态变量

函数的局部变量在函数调用结束后不消失而保留原值,用static声明。

局部变量和自动变量的区别

1.静态局部变量属于静态存储类别,在静态存储区内分配存储单元,整个程序运行期间都不释放。自动变量占动态存储区间。

2.静态局部变量在编译时赋初值,即只赋值(=号)一次;而自动变量每次调用重新赋值。

3.静态局部变量编译时自动赋值为0.或空字符。 自动变量,将是一个不确定的值。

4.寄存器变量。

将局部变量的值放在cpu寄存器内。

1.只有局部自动变量和形式参数可以作为寄存器变量

2.一个计算机寄存器数目有限

3.不能用&求寄存器变量地址


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值