Pembolehubah dalam bahasa pengaturcaraan C mempunyai nilai lalai yang ditetapkan bergantung pada skopnya. Walau bagaimanapun, salah tanggapan boleh timbul mengenai kelakuan pembolehubah tempatan yang tidak dimulakan.
Pertimbangkan coretan kod berikut:
int main() { int a; cout << a; return 0; }
Dalam contoh ini, pembolehubah a tidak dimulakan sebelum digunakan, yang mungkin membawa kepada keputusan yang tidak dijangka.
Nilai Lalai untuk Pembolehubah
Secara lalai, pembolehubah kamiran tidak diinisialisasi setempat (skop fungsi) dalam C mempunyai nilai tak tentu. Ini bermakna ia boleh mengandungi data rawak daripada ingatan. Jika pembolehubah sedemikian digunakan sebelum diberikan nilai yang ditentukan, ia menghasilkan gelagat yang tidak ditentukan.
Pengecualian kepada Nilai Lalai
Walau bagaimanapun, terdapat pengecualian kepada peraturan ini: pembolehubah bukan tempatan dan benang-tempatan, termasuk integer, dimulakan sifar oleh lalai.
Akibat Penggunaan Pembolehubah Tidak Dimulakan
Menggunakan pembolehubah tempatan yang tidak dimulakan memperkenalkan gelagat yang tidak ditentukan, yang boleh nyata dalam pelbagai cara yang tidak dapat diramalkan. Pengkompil mungkin menetapkan nilai lalai, tetapi ini bergantung pada pelaksanaan dan tidak dijamin.
Amalan Terbaik
Untuk mengelakkan potensi bahaya, adalah sangat disyorkan untuk memulakan semua pembolehubah secara eksplisit, walaupun mereka tempatan. Ini memastikan gelagat yang boleh diramal dan menentukan dalam kod anda.
Pengecualian Jarang berlaku
Dalam senario tertentu, seperti sistem terbenam, pembolehubah global yang tidak dimulakan mungkin dimulakan secara dinamik berdasarkan bacaan penderia atau input luaran lain. Walau bagaimanapun, amalan ini harus digunakan dengan berhati-hati dan hanya dalam konteks yang jelas.
Atas ialah kandungan terperinci Mengapa Anda Perlu Sentiasa Memulakan Pembolehubah Tempatan dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!