Nilai Permulaan Ahli Struktur dalam C
Pertimbangkan struct berikut:
struct Snapshot { double x; int y; };
Jika struct diisytiharkan tanpa permulaan, adakah ahlinya ditetapkan secara automatik kepada 0?
Jawapan:
Tidak, ahli tidak dimulakan secara automatik kepada 0. Untuk menetapkannya kepada 0, permulaan eksplisit diperlukan:
Snapshot s = {0,0};
Permulaan Lain Pilihan:
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
Nota: Pemulaan pembina tidak boleh dilakukan jika terdapat agregat senarai pemula hadir dalam pengisytiharan struct.
Atas ialah kandungan terperinci Adakah Ahli C Struct Secara Automatik Dimulakan Sifar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!