空初始化 Empty initialization就是一个空的大括号,如:
Stu s2 = { };
如果一个struct 变量没有提供初始化器,那它的属性值有可能就是一个不确定的值,
而空初始化就可以将这些变量初始化为一个确定的值,比如:
- 将整型值初始为无符号的0。
- 将float初始化为正0。
- 将指针初始化为指向这个指针类型的空指针。
- 数组,结构体等递归执行空初始化。
如下是一个简单的对比测试:
#include <iostream>
using namespace std;
struct Stu {
int age;
};
int main() {
Stu s1;
cout << s1.age << endl;
Stu s2 = { };
cout << s2.age << endl;
return 0;
}
由于s1没初始化器,每次s1.age的值都是随机不确定的,
而s2执行了空初始化,s1.age的值始终为0。