Array[n] vs Array[10]: Perbezaan Antara Permulaan Pembolehubah dan Literal Numerik untuk Saiz Array
Dalam pengaturcaraan C, tatasusunan memainkan peranan penting dalam penyimpanan dan pengambilan data. Walau bagaimanapun, mungkin terdapat masalah tertentu apabila bekerja dengan pemula tatasusunan, terutamanya yang berkaitan dengan penggunaan tatasusunan panjang berubah-ubah.
Pertimbangkan coretan kod berikut:
int n = 10; double tenorData[n] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
Kod ini bertujuan untuk memulakan tatasusunan bernama tenorData dengan saiz yang ditentukan oleh pembolehubah n, yang ditetapkan kepada 10. Walau bagaimanapun, pendekatan ini menimbulkan ralat kompilasi yang menyatakan bahawa tenorData objek bersaiz pembolehubah tidak boleh dimulakan dengan cara ini.
Perbezaan utama dalam kod ini terletak pada penggunaan pembolehubah, n, untuk mentakrifkan saiz tatasusunan. Dalam C , tatasusunan panjang berubah-ubah tidak disokong, bermakna saiz tatasusunan mestilah pemalar yang diketahui pada masa penyusunan.
Untuk menyelesaikan isu ini dan berjaya memulakan tatasusunan, terdapat beberapa pilihan yang tersedia:
double tenorData[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
const int n = 10; double tenorData[n] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int n = 10; double* tenorData = new double[n];
Ingat untuk mengagihkan memori menggunakan delete [] tenorData apabila anda selesai dengan tatasusunan.
int n = 10; std::vector<double> tenorData(n);
Dengan mengikut garis panduan ini, anda boleh memulakan tatasusunan dengan berkesan dalam C sambil mengelakkan perangkap yang dikaitkan dengan tatasusunan panjang berubah-ubah.
Atas ialah kandungan terperinci Permulaan Array dalam C : `Array[n]` lwn. `Array[10]` – Apakah Perbezaannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!