Pemulaan Elemen Tatasusunan dengan Nilai Lalai dalam C
Soalan:
Mengapa memulakan tatasusunan dengan nilai bukan sifar menggunakan sintaks di bawah mengakibatkan tidak konsisten nilai?
int array[100] = {-1};
Jawapan:
Menggunakan sintaks yang disebut dalam soalan,
int array[100] = {-1};
memulakan elemen pertama kepada nilai yang ditentukan (-1) dan tetapkan elemen yang tinggal kepada 0 secara lalai. Untuk memulakan semua elemen kepada -1, seseorang boleh menggunakan fungsi std::fill_n daripada
std::fill_n(array, 100, -1);
Untuk kod C, gelung manual diperlukan untuk memulakan semua elemen secara eksplisit. Sambungan pengkompil atau gelagat yang ditentukan pelaksanaan mungkin menyediakan pintasan, tetapi bergantung pada ini tidak disyorkan untuk mudah alih.
Mengenai Kelajuan Permulaan:
Kaedah permulaan lalai biasanya tidak lebih cepat daripada memulakan setiap elemen secara eksplisit menggunakan gelung. Walau bagaimanapun, perbezaan prestasi biasanya boleh diabaikan melainkan berurusan dengan tatasusunan yang besar.
Atas ialah kandungan terperinci Mengapakah Beberapa Elemen Tatasusunan Dimulakan kepada Sifar Apabila Saya Menetapkan Nilai Lalai dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!