默认初始化
1)当一个变量定义时没有指定初始值,将执行默认初始化(有一种特殊情况在值初始化的第2点)
2)默认初始化的初始值规则:对于内置类型:如果是全局变量的,则初始化为0,如果是局部变量的,则不被初始化;对于类,执行默认构造函数
值初始化
1)值初始化的初始值规则:与默认初始化规则一致
2)容器或数组定义时只给部分元素提供了初始值,则剩余部分元素将执行值初始化
如:int a[10]={0}; //只提供了一个0,剩余9个元素值初始化为0
3)容器初始化时只提供了数量没有提供初始值,则容器内元素将执行值初始化
如:vector<int> vec(10); //vec中含有10个0
vector<string> vec(10); //vec中含有10个空string
vector<bool> choose(10); //vec中含有10个false
4)静态局部变量没有指定初始值,则执行值初始化(不是默认初始化)
来源:https://www.cnblogs.com/Joezzz/p/9683161.html