C学习记录-存储方式

  在C语言中,每个变量和函数都有两个属性:数据类型和存储类型,其中与存储类型有关的四个关键字分别为auto,extern,static,register.
变量的存储类型据定了变量的作用域、存储分配方式、生命周期和初始化方式。
动态分配方式:在程序运行的过程中分配和回收存储单元的分配方式
静态分配方式:程序运行之前,系统就为外部变量在静态区分配存储单元,而且在整个程序运行结束后这些被占用的存储单元才被收回的分配方式。

(1)auto
作用域:局限于定义它的块
生命周期:从块内定义之后知道该块结束
存储分配方式:动态分配方式
初始化方式:没有缺省初始值

(2)extern
作用域:从定义之后到该源文件结束的所有函数,通过extern可以进行生命使作用域扩大到整个程序的所有文件
生命周期:永久
存储分配方式:静态分配方式
初始化方式:缺省初始值为0

(3)static
静态局部变量:
作用域:局限于定义它的块
生命周期:永久
存储分配方式:静态分配方式
初始化方式:如果定义静态局部变量有显示初始化,只在第一次进入时进行赋值初始化

动态局部变量:
作用域:从定义之后到该源文件结束的所有函数,只能作用与文件,即使试图用extern也不能改变
生命周期:永久
存储分配方式:静态分配方式
初始化方式:缺省初始值为0

(4)register
关键字只能用来定义局部变量,称为寄存器变量。register建议编译器把该变量存储在计算机的高速硬件寄存器中,除此之外,其余特性和自动变量完全相同。
函数的形参能声明为register,但不能生命为extern和static的。另外寄存器变量不能执行取地址运算。

转载于:https://www.cnblogs.com/linge1949/archive/2012/12/04/2801904.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值