变量的存储类型

1.对变量的理解。
  变量与内存中一片存储区域相对应,变量的地址就是这片存储区域的首字节的地址。编译器将变量名和变量的内存地址对应起来。变量的值就是变量在内存中保存的数据。
2.变量的声明和定义
   声明只是告诉编译器有这样一个变量。定义,将为这个变量分配存储空间,一个变量可能被声明多次,但只会被定义一次。变量的第一次赋值被称为初始化。
3.对变量的作用域的理解。
  变量能够被访问的范围
  <1> 代码块作用域:只能在代码块里被访问的作用域
  <2> 函数原型作用域: 函数声明的变量的作用域
  <3> 文件作用域:能够被整个文件访问的作用域
4.对变量的链接属性的理解。
<1> 外部链接  能够被程序中的任何文件访问的变量
<2> 内部链接: 只有本件能访问的变量
<3> 空链接:只能被代码块访问的变量
5.对变量的存储时期的理解
<1> 静态存储时期(static)
    变量在程序运行期间一直存在,也就是说变量所在内存中的存储空间一直都保存着变量的值,变量的地址没有发生改变过。如具有文件作用域的变量。
<2>自动存储时期(auto)
    变量在程序运行期间不是一直存在,也就是说变量所在的存储空间并不是一直都保存这变量的值,变量的所占用的空间被回收了。如具体代码块作用域的变量。
6.对变量的存储类型的理解。
根据变量的作用域、链接属性、存储时期我们可以得到变量的值的存储类型:
<1>自动变量:代码块作用域,空链接,自动存储时期,也就是说程序离开代码块后,变量的内存被回收,分配给其他变量。
<2>寄存器变量:代码块作用域,空链接,自动存储时期,变量的值保存在寄存器或者内存(没有合适的寄存器),与自动变量的区别一是没有地址,二是存储容量有限。(无法存储double,long等数据)。
<3>具有代码块作用域的静态变量:文件作用域,空链接,静态存储时期,也就是说,程序运行期间,变量一直存在,变量只是被初始化一次。
<4>具有外部链接的静态变量(外部变量或者全局变量):文件作用域,外部链接,静态存储时期,也就是说变量一直存在,可以被任何文件访问,变量只是被初始化一次
<5>具有内部链接的静态变量(静态变量):文件作用域,内部链接,静态存储时期,也就是说变量一直存在,只能被当前所在文件访问,变量只是被初始化一次。
7.对于static 关键字的理解。
   static 是一个存储类说明符
   对于文件作用域的变量,static 只是用来说明变量的链接属性。
   对于代码块作用域的变量,static 表示变量具有静态存储时期。
8.对于extern 关键字的理解。
   extern 只是一个存储类的说明符
   extern 声明的变量,表示该变量在其他地方定义过,一般用来声明外部变量或者静态变量
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值