全局变量、静态全局变量、静态局部变量和局部变量
全局变量、静态变量如果没有手动初始化,则有编译器初始化为0。
局部变量是编译器永远不会初始化的变量,如果没有手动初始化,局部变量的值为随机值。
在函数内使用全局变量,一般应做全局变量说明,只有在函数内经过说明的全局变量才能使用。
但在一个函数之前定义的全局变量,在该函数内使用可不再加以说明。
全局变量说明:extern 类型说明符,变量名,变量名……;
在C++中,对变量的存储类型有4种:
auto、register、extern、static
例如:
static int a; a为静态类型变量
auto char c; c为自动字符变量
static int a[2]={1,2}; a为静态整型数组
extern int x; x为外部整型变量
作用域有6种:
全局作用域 、 局部作用域 、语句作用域、 类作用域 、命名空间作用域 、文件作用域
被static 关键字修饰过的变量具有文件作用域。两个不同的源文件都定义了相同名字的静态全局变量,它们也是不同的变量。
分配内存空间
全局变量、静态全局变量和静态局部变量都存放在内存的静态存储区域
局部变量存放在内存的栈区。