Rumah > pembangunan bahagian belakang > C++ > Adakah Ahli C Struct Secara Automatik Dimulakan Sifar?

Adakah Ahli C Struct Secara Automatik Dimulakan Sifar?

DDD
Lepaskan: 2024-12-05 04:36:10
asal
179 orang telah melayarinya

Are C   Struct Members Automatically Zero-Initialized?

Nilai Permulaan Ahli Struktur dalam C

Pertimbangkan struct berikut:

struct Snapshot
{
    double x; 
    int y;
};
Salin selepas log masuk

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};
Salin selepas log masuk

Permulaan Lain Pilihan:

  • Permulaan Nilai ({}): Memulakan semua ahli kepada nilai lalai mereka, mis., 0 untuk jenis angka.
Snapshot s = {}; // All members set to 0
Salin selepas log masuk
  • Pembina Lalai: Jika struct mempunyai pembina lalai dengan pemula ahli, ia akan digunakan untuk pemula tersirat.
struct Snapshot {
    int x = 0;
    double y = 0.0;
};

Snapshot s; // x = 0, y = 0.0
Salin selepas log masuk
  • Pembina dengan Permulaan Ahli: Permulaan tersuai boleh dilakukan menggunakan pembina.
struct Snapshot {
    Snapshot(int x, double y) : x(x), y(y) { }
};

Snapshot s(0, 0.0); // x = 0, y = 0.0
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan