C++中的全局变量普通局部变量和静态局部变量的区别
Posted 黑芝麻12
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++中的全局变量普通局部变量和静态局部变量的区别相关的知识,希望对你有一定的参考价值。
在C++中,我们经常难以说清楚全局变量、局部变量和静态局部变量的区别。本博客从变量存储特性和标识符作用域两个角度区分这三个变量。
首先,我们来看看C++程序的内存区域是如何分配的。
从上图,我们可以看到,C++程序的内存区域分为代码区、全局数据区、堆区和栈区。其中,全局变量和静态局部变量存放在全局数据区,这两个变量在程序开始时就已经分配和初始化存储空间了。而普通局部变量存放在栈区,它在程序进入声明的代码块时生成,在结束代码块时删除。
其次,从标识符作用域的角度,我们可以认为:
1. 全局变量和静态局部变量具有文件作用域;
2. 普通局部变量具有函数作用域或者块作用域。
以上是关于C++中的全局变量普通局部变量和静态局部变量的区别的主要内容,如果未能解决你的问题,请参考以下文章
全局变量与静态全局变量的异同(static与非static)