Rumah > pembangunan bahagian belakang > C++ > Permulaan Array dalam C : `Array[n]` lwn. `Array[10]` – Apakah Perbezaannya?

Permulaan Array dalam C : `Array[n]` lwn. `Array[10]` – Apakah Perbezaannya?

Susan Sarandon
Lepaskan: 2024-12-16 14:56:11
asal
704 orang telah melayarinya

Array Initialization in C  : `Array[n]` vs. `Array[10]` – What's the Difference?

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

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:

  • Gunakan literal angka: Daripada menetapkan saiz kepada pembolehubah, anda boleh menentukan terus bilangan elemen dalam tatasusunan:
double tenorData[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
Salin selepas log masuk
  • Gunakan pemalar: Anda boleh mentakrifkan saiz tatasusunan sebagai pemalar:
const int n = 10;
double tenorData[n] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
Salin selepas log masuk
  • Gunakan peruntukan dinamik: Peruntukkan memori secara dinamik untuk tatasusunan menggunakan yang baharu operator:
int n = 10;
double* tenorData = new double[n];
Salin selepas log masuk

Ingat untuk mengagihkan memori menggunakan delete [] tenorData apabila anda selesai dengan tatasusunan.

  • Gunakan bekas standard: Pertimbangkan untuk menggunakan bekas standard seperti std::vector yang boleh melaraskan saiznya secara dinamik sebagai diperlukan:
int n = 10;
std::vector<double> tenorData(n);
Salin selepas log masuk

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!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan