C ++ Catatan: Array Inisialisasi memiliki daftar yang bagus atas inisialisasi array. Saya punya
int array[100] = {-1};
mengharapkannya menjadi penuh dengan -1 tetapi tidak, hanya nilai pertama dan sisanya adalah 0 dicampur dengan nilai acak.
Kode
int array[100] = {0};
berfungsi dengan baik dan menetapkan setiap elemen ke 0.
Apa yang saya lewatkan di sini .. Tidak bisakah seseorang menginisialisasi jika nilainya tidak nol?
Dan 2: Apakah inisialisasi default (seperti di atas) lebih cepat daripada loop biasa melalui seluruh array dan menetapkan nilai atau apakah itu melakukan hal yang sama?
{0}
bukan kasus khusus untuk struct atau array. Aturannya adalah elemen tanpa inisialisasi diinisialisasi seolah-olah mereka memiliki 0
inisialisasi. Jika ada agregat bersarang (mis. struct x array[100]
) Maka inisialisasi diterapkan pada non-agregat dalam urutan "baris-utama"; kawat gigi secara opsional dapat dihilangkan dengan melakukan hal ini. struct x array[100] = { 0 }
valid dalam C; dan valid dalam C ++ selama anggota pertama struct X
accepts 0
sebagai initializer.
{ 0 }
tidak istimewa dalam C, tetapi jauh lebih sulit untuk menentukan tipe data yang tidak dapat diinisialisasi dengan itu karena tidak ada konstruktor dan dengan demikian tidak ada cara untuk berhenti 0
dari yang secara implisit dikonversi dan ditugaskan ke sesuatu .