局部变量存放在栈区,如果不初始化,系统会随机一个值。
全局变量量存放在静态区,会自动初始化默认值。
new在堆区申请空间,其局部变量也不会被初始化。
所以,局部变量要尽量初始化,尤其是数组。
代码如下:
#include<iostream>
#include <array>
using namespace std;
int main()
{
int a[10];
for(int i = 0; i < 5; i++){
cout << a[i] << endl;
}
cout << "new一个变量" << endl;
int *b = new int[10];
for(int i = 0; i < 5; i++){
cout << b[i] << endl;
}
// 只要是局部变量就一定要初始化
cout << "array数组" << endl;
array<int, 10> arr;
for(int i = 0; i < 5; ++i){
cout << arr[i] << endl;
}
// 所以局部变量的一定要初始化,尤其是数组的定义
return 0;
}
代码运行结果