struct A {
int x;
int y;
int z = 123;
};
A a {.x = 1, .z = 2}; // a.x == 1, a.y == 0, a.z == 2
当使用c风格指定初始值时,没有被指定的成员变量将使用默认初始化(default-initialized)。C++11的时候增加了default-initialized概念,数值的默认初始化值被设为0。如:
int i{}; // i 将被初始化为0
int i2; // i2 将被初始化为未知的一个数值
其实designated initializers在C++17以前就实装到编译器了,只是在C++20才明确写入C++标准,类似的情况还有很多。
C++初始化与默认值
本文探讨了C++中结构体成员变量的初始化方式,包括C风格的指定初始化及C++11引入的默认初始化概念。详细解释了未指定成员如何使用默认初始化,并给出实例说明。
&spm=1001.2101.3001.5002&articleId=108245796&d=1&t=3&u=838ecf6c430f429097936e2761732566)
1832

被折叠的 条评论
为什么被折叠?



