C 中结构体成员的值初始化
考虑以下结构体:
struct Snapshot { double x; int y; };
如果声明了该结构体没有初始化,其成员是否自动设置为0?
答案:
不,成员不会自动初始化为 0。要将它们设置为 0,需要显式初始化:
Snapshot s = {0,0};
其他初始化选项:
Snapshot s = {}; // All members set to 0
struct Snapshot { int x = 0; double y = 0.0; }; Snapshot s; // x = 0, y = 0.0
struct Snapshot { Snapshot(int x, double y) : x(x), y(y) { } }; Snapshot s(0, 0.0); // x = 0, y = 0.0
注意:如果存在聚合初始值设定项列表,则无法进行构造函数初始化在结构声明中。
以上是C 结构体成员是否自动零初始化?的详细内容。更多信息请关注PHP中文网其他相关文章!