C++中的全局变量普通局部变量和静态局部变量的区别

Posted 黑芝麻12

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++中的全局变量普通局部变量和静态局部变量的区别相关的知识,希望对你有一定的参考价值。

在C++中,我们经常难以说清楚全局变量、局部变量和静态局部变量的区别。本博客从变量存储特性和标识符作用域两个角度区分这三个变量。

首先,我们来看看C++程序的内存区域是如何分配的。

从上图,我们可以看到,C++程序的内存区域分为代码区、全局数据区、堆区和栈区。其中,全局变量和静态局部变量存放在全局数据区,这两个变量在程序开始时就已经分配和初始化存储空间了。而普通局部变量存放在栈区,它在程序进入声明的代码块时生成,在结束代码块时删除。

 

其次,从标识符作用域的角度,我们可以认为:

1. 全局变量和静态局部变量具有文件作用域

2. 普通局部变量具有函数作用域或者块作用域

 

以上是关于C++中的全局变量普通局部变量和静态局部变量的区别的主要内容,如果未能解决你的问题,请参考以下文章

VC中public定义的变量与全局变量的区别??

全局变量 静态变量 局部变量 啥时候创建 啥时候撤销

全局变量局部变量静态全局变量静态局部变量在内存里的区别

全局变量与静态全局变量的异同(static与非static)

全局变量与静态全局变量的异同(static与非static)

全局变量和局部变量