【温故而知新】C和C++2:C++的数据存储-阿里云开发者社区

开发者社区> 开发与运维> 正文

【温故而知新】C和C++2:C++的数据存储

简介: 1、C++中的变量有那些存储类型? 变量的存储类型会告诉编译器将数据存储在什么地方。在C++中,除了普通变量auto类型外,变量主要有三种存储类型:外部变量extern、静态变量static和寄存器变量register。

1、C++中的变量有那些存储类型?

变量的存储类型会告诉编译器将数据存储在什么地方。在C++中,除了普通变量auto类型外,变量主要有三种存储类型:外部变量extern、静态变量static和寄存器变量register。

(1)外部变量extern类型:顾名思义,用extern描述的变量是定义在该文件外部的变量。在当前文件中使用extern再次声明该变量,就可以将外部文件作用域的变量的作用域扩展到当前文件中。

(2)静态变量static类型:同全局变量一样,静态变量保存于全局存储区;该类型变量在定义的时候初始化,并且仅仅初始化一次;静态变量的生命周期为整个进程的执行过程;

(3)寄存器变量register类型:此类变量存放于CPU的寄存器中,因此存取速度很快;通常只用于局部变量和函数的形参;

2、C++如何控制变量的存取?

控制变量的存取可以使用const、volatile修饰符;

(1)const类型:常数型数据,const型变量在定义的时候赋初值,程序在运行过程中不能对其修改;通常可用于修饰函数不必要修改的参数;

(2)volatile类型:暂态类型,用于可能被隐式修改的变量;主要影响编译器的处理效率;

3、C++对象的生存期和作用域

所谓生存期,表示某对象从被创建开始到释放掉的过程。局部对象、静态对象、全局对象的声明周期分别为块执行过程、从创建开始到进程退出、进程开始到进程退出。同时还存在类作用域,更复杂的还有局部类和嵌套类等。具体情况还需要具体分析。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章