1 全局变量
在所有函数之外定义的变量是全局变量,它的生命周期直到程序结束。程序中的所有部分都对该变量可见。通过extern关键字,甚至外部文件也可以访问该变量。
2 局部变量
局部变量在函数体内声明,其作用域只在该函数体内。其中局部变量有一下2中情况:
(1)寄存器变量
在声明局部变量的时候,使用关键字register可以暗示编译器"应该尽可能快的访问该变量",但这仅仅是暗示,编译器并不一定会将该变量放入寄存器中,甚至也不一定保证提高访问速度。而且,对于register变量还有限制,不能获取register变量的地址或者引用,然而可以再一个函数的参数列表中使用register变量作为形参。最好避免使用register参数。
(2) static变量
将函数内的局部变量声明成static,那么局部变量的生命周期就不在是该函数被调用的时刻,而是整个程序的整个生命期里都存在,并且只在函数第一次调用的时候初始化一次。它与全局变量的区别是,static变量在其存在的函数外部不可见。
对于static关键字,它还有第二层意思:"在文件外部不可访问这个名字",因此,当static应用于函数名或者所有函数外部变量时,其他外部文件无法访问它们,即使用extern关键字也一样。
3 常量
c++中有命名常量的概念,它和变量一样,只是值不能改变,它通过关键字const声明。所有的内建数据类型和用户自定义类型都可以声明成const。
原文链接: https://www.cnblogs.com/chaoguo1234/archive/2013/03/30/2989968.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/82616
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!