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中文網其他相關文章!