C++,静态区,动态区,以及存储方式!

     变量具有存储期的属性,也叫生命期。存储期是指变量在内存中的存在期间(从时间角度)。可以分为静态存储期和动态存储期。存储空间有三个部分:程序区,静态存储区和动态存储区。下面介绍几种变量:

1.全局变量全部放在静态存储区,直到程序完毕就释放这些空间。

2.自动变量:关键字auto声明的,存在动态存储区。当不写的的时候,系统默认为auto型;

3.关键字static:

①.用static声明静态局部变量,存在静态存储区,如果不赋初值,系统默认值为为0或空字符

②.用static声明静态外部变量,限制变量只能在本文件使用;

4.register寄存器,将变量直接存放在CPU中的寄存器中,存取速度快,执行效率高。现在的编译系统,能够识别,自动将使用频繁的变量存在寄存器当中,所以声明register在实际当中没有必要;

5.关键字extern:

①.在一个文件内声明,可以在未定义之前使用该变量;

②.在多文件中声明外部变量,可以使用另一个文件中声明的变量;(此时的外部变量存在静态区)

下面是一些相关实例;

file1.cpp

   auto int a=3;//声明为自动变量,可以省略

   static int b=3;//声明静态局部变量,函数调用后,值保持不变

   register int c=3;//寄存器变量

   extern int d;

   cout<<d<<endl;

   int d=5;

   static int e=6;//在file2中不能引用该变量, 

/

file2.cpp

  extern int a;//可以使用file1.cpp文件中的a

  extern int e;//不可以使用

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值