Rumah >pembangunan bahagian belakang >C++ >Mengapa Pembolehubah Tidak Dimulakan Menghasilkan Output Pelik dalam C?
Apabila bekerja dengan pembolehubah tidak diinisialisasi, pengaturcara sering menghadapi nilai yang tidak dijangka apabila ia dicetak. Artikel ini menyelidiki sebab di sebalik nombor yang kelihatan pelik ini dan menerangkan konsep kelakuan tidak ditentukan.
Dalam coretan kod yang anda berikan:
int var; cout << var << endl;
Var pembolehubah diisytiharkan sebagai int dan tidak diberikan sebarang nilai awal. Begitu juga, dalam kes pembolehubah berganda:
double var; cout << var << endl;
Pembolehubah diisytiharkan tanpa permulaan.
Output yang anda perhatikan, seperti 2514932 dan 1.23769e-307, bukan nilai yang bermakna . Ini kerana membaca pembolehubah yang tidak dimulakan menghasilkan gelagat tidak ditentukan dalam C .
Gelagat tidak ditentukan bermakna bahawa pengkompil dan persekitaran masa jalan tidak diperlukan untuk menguatkuasakan sebarang gelagat tertentu apabila pembolehubah yang tidak dimulakan ditemui. Nilai yang anda lihat hanyalah data sampah yang berada di lokasi memori yang diberikan kepada pembolehubah pada masa itu.
Piawaian C mentakrifkan mengakses nilai yang tidak dimulakan sebagai membawa kepada tingkah laku yang tidak ditentukan, seperti yang dinyatakan dalam bahagian 4.1: ". ..jika objek tidak dimulakan, program yang memerlukan penukaran ini mempunyai tingkah laku yang tidak ditentukan."
Dalam amalan, anda sepatutnya elakkan membaca pembolehubah yang tidak dimulakan kerana ia boleh membawa kepada tingkah laku program yang tidak dapat diramalkan dan salah. Sentiasa mulakan pembolehubah dengan nilai yang bermakna sebelum menggunakannya untuk memastikan pelaksanaan kod yang boleh dipercayai.
Atas ialah kandungan terperinci Mengapa Pembolehubah Tidak Dimulakan Menghasilkan Output Pelik dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!