1. 全局变量和静态变量存储区域和作用范围的区别
相同点:存储在静态数据区;
不同点:作用范围不同,静态变量作用范围在一个文件内,程序开始时分配空间,结束时释放空间,默认初始化为0,全局变量作用范围全局可见
2. 全局变量的初始化问题
全局变量的初始化必须为一个常量,不能是一个非常量的表达式;而在c++中是可以的。并且c、c++全局变量的赋值要在函数内部进行!
int a;
a = 10; //这里是对全局变量进行赋值操作,是错误的
int main(void)
{
…
}
在操作c和c++全局变量时,只能对其采用初始化的方式,而不能采用赋值的方式,即可以
int a = 10; //错误
而不可以:
int a;
a = 10;//这里是对全局变量进行赋值操作,是错误的
int main(void)
{
…
}
3. 全局变量默认初始化为0;全局指针默认初始化为NULL