我想将数组的所有成员初始化为零,或者nullptr
struct Window{ int a;};
int main()
{
Window* list[4] = { 0, 0, 0, 0 };
Window* list2[4] = {0};
Window* list3[4] = {};
Window* list4[4]{ 0, 0, 0, 0 };
Window* list5[4]{0};
Window* list6[4]{};
}
我知道当将至少一个成员初始化为任何值时,所有其他成员都初始化为零,所以如果我这样做:
int list[4] = { 6 };
第一个成员变为6
,其余所有成员均为零初始化。但是我很困惑:
int list[4]{0};
和
int list[4]{};
我假设没有等号的声明之后的空波浪括号是所谓的零初始化,而不是默认初始化,但也是如此int list[4]{0}
,不是吗?这是否涉及std::initializer_list
幕后?我以为这些只用于非 POD 类型,所以std::initializer_list
这里没有使用吗?