全局变量和局部变量

Posted pennyxia

tags:

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

C++的默认初始化规则:

  • 栈中的变量(函数体中的自动变量)和堆中的变量(动态申请的变量)会有不确定的值;
  • 全局变量和静态变量(包括局部静态变量)会初始化为0

变量的存储:

  • 栈:在函数内部声明的所有变量都将占用栈内存。
  • 堆:这是程序中未使用的内存,在程序运行时可用于动态分配内存。
  • 全局区(static):也叫静态数据内存空间,存储全局变量和静态变量,全局变量和静态变量的存储是放一块的,初始化的全局变量和静态变量放一块区域,没有初始化的在相邻的另一块区域,程序结束后由系统释放。
  • 文字常量区:常量字符串就是放在这里,程序结束后由系统释放。
  • 程序代码区:存放函数体的二进制代码。
 1 #include <iostream>
 2 using namespace std;
 3 int a;
 4 int main(){
 5     for(int i=0;i<10;i++){
 6         int a=i;//定义一个与全局变量a重名的局部变量,局部变量会屏蔽全局变量 
 7         cout<<a<<endl;
 8     }
 9     cout<<a<<endl;//输出全局变量a,全局变量会自动初始化为0,因为编译连接后它的位置就是确定的
10     return 0;
11 }

运行结果:

技术图片

 

以上是关于全局变量和局部变量的主要内容,如果未能解决你的问题,请参考以下文章

js中局部变量和全局变量的问题

JS---闭包

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

全局变量局部变量闭包详解

Python20之全局变量和局部变量

局部变量和全局变量