Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Memulakan Ahli Struktur C kepada Sifar?

Bagaimanakah Saya Boleh Memulakan Ahli Struktur C kepada Sifar?

DDD
DDDasal
2024-12-08 10:08:12275semak imbas

How Can I Initialize C   Struct Members to Zero?

Permulaan Lalai Ahli Struktur C

Dalam struct C, ahli tidak dimulakan secara automatik kepada 0 secara lalai. Untuk memulakan ahli struct kepada 0, terdapat beberapa pilihan:

Permulaan Nilai

Menggunakan pendakap kosong yang disertakan dengan pendakap { } memberikan nilai lalai kepada semua ahli:

Snapshot s = {};

Struktur Induk Rekursi

Jika struct induk mengandungi sub-struct, permulaan nilai struct induk juga akan memulakan ahli sub-structnya kepada 0:

struct Parent { Snapshot s; };
Parent p = {}; // p.s.{x,y} will be zero

Constructor Permulaan

Jika struct mempunyai pembina, ahli boleh dimulakan dalam parameternya senarai:

struct Snapshot {
    int x;
    double y;
    Snapshot():x(0),y(0) { }
};
Snapshot s; // s.{x,y} will be zero

Permulaan Nilai Menggunakan ()

Pengamatan nilai, ditunjukkan dengan (), memulakan ahli tanpa mengira jenis mereka:

struct Snapshot {
    int x;
    double y;
};
Snapshot s = {x(), y()}; // s.{x,y} will be zero

Perhatikan bahawa pemulaan nilai adalah penting untuk struktur templat, memastikan pemulaan yang betul untuk jenis yang berbeza.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memulakan Ahli Struktur C kepada Sifar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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