您的位置:首页 > 编程语言 > C语言/C++

C++全局变量、静态局部变量、局部变量、静态全局变量

2017-07-03 15:49 453 查看
全局变量、静态局部变量、局部变量、静态全局变量

全局变量全局作用域全局变量只需在一个源文件中定义,就可以作用于所有的源文件。其他不包含全局变量定义的源文件需要用extern 关键字再次声明这个全局变量。静态存储区分配空间
静态全局变量全局作用域如果程序包含多个文件的话,它作用于定义它的文件里,不能作用到其它文件里,即被static关键字修饰过的变量具有文件作用域。这样即使两个不同的源文件都定义了相同名字的静态全局变量,它们也是不同的变量。静态存储区分配空间
静态局部变量局部作用域只被初始化一次,自从第一次被初始化直到程序运行结束都一直存在。静态局部变量只对定义自己的函数体始终可见。静态存储区分配空间
局部变量局部作用域它在程序运行期间不是一直存在,而是只在函数执行期间存在,函数的一次调用执行结束后,变量被撤销,其所占用的内存也被收回。栈里分配空间
PS:

C++变量具有6种不同作用域:全局作用域,局部作用域,语句作用域,类作用域,命名空间作用域和文件作用域。

可编程内存
静态存储区内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。主要存放静态数据、全局数据和常量。
栈区在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。
堆区(动态内存分配)程序在运行的时候用malloc或new申请任意大小的内存,程序员自己负责在适当的时候用free或delete释放内存。动态内存的生存期可以由程序员自己决定
C++内存模型
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐