微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c++中变量的存储种类

1 全局变量

在所有函数之外定义的变量是全局变量,它的生命周期直到程序结束。程序中的所有部分都对该变量可见。通过extern关键字,甚至外部文件也可以访问该变量。

2 局部变量

局部变量在函数体内声明,其作用域只在该函数体内。其中局部变量有一下2中情况:

(1)寄存器变量

在声明局部变量的时候,使用关键字register可以暗示编译器"应该尽可能快的访问该变量",但这仅仅是暗示,编译器并不一定会将该变量放入寄存器中,甚至也不一定保证提高访问速度。而且,对于register变量还有限制,不能获取register变量的地址或者引用,然而可以再一个函数的参数列表中使用register变量作为形参。最好避免使用register参数。

(2) static变量

函数内的局部变量声明成static,那么局部变量的生命周期就不在是该函数调用的时刻,而是整个程序的整个生命期里都存在,并且只在函数第一次调用的时候初始化一次。它与全局变量的区别是,static变量在其存在的函数外部不可见。

对于static关键字,它还有第二层意思:"在文件外部不可访问这个名字",因此,当static应用于函数名或者所有函数外部变量时,其他外部文件无法访问它们,即使用extern关键字也一样。

3 常量

c++中有命名常量的概念,它和变量一样,只是值不能改变,它通过关键字const声明。所有的内建数据类型和用户自定义类型都可以声明成const。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐