默认初始化、值初始化

默认初始化

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