变量存储区:
一般程序的由new产生的数据存放在堆区
函数内部的自动变量存放在栈区,自动变量一般会随着函数的退出而释放空间
静态数据(即便是函数内部的静态局部变量也存放在全局数据区,全局数据区的 数据不会因为函数的退出而释放空间
变量分类和区别:
局部变量:的生命周期、作用域是是其所在的大括号,内存开在栈上,
静态局部变量:作用域是其所在的函数,内存开在全局存储区,
全局变量: 作用域全局,在一个源文件中定义,包含这个源文件的头文件,就可以使用全局变量,如果没有包含头文件, 用extern再次申明该全局变量
静态全局变量: 全局数据区,只能在自己所在的源文件里用
注意:在main函数以外的.h里声明全局变量,需要用到namespace,单独直接声明会报错重定义