Penukaran Nilai-ke-R dan Gelagat Tidak Ditakrifkan dalam int x = x;
Latar Belakang:
Kod C int x = x; memulakan pembolehubah x dengan nilainya sendiri, tetapi nilai ini tidak dimulakan untuk pembolehubah automatik. Oleh itu, nilai adalah tidak tentu dan tingkah laku tidak ditentukan mungkin terhasil.
Penukaran Nilai-ke-Nilai:
Penukaran nilai-ke-rnilai mengubah nilai (rujukan atau objek dengan alamat) menjadi prvalue (nilai tanpa alamat). Piawaian C menyatakan bahawa melakukan penukaran ini pada nilai yang tidak dimulakan menghasilkan gelagat yang tidak ditentukan.
Adakah Tangan Kanan x Menjalani Penukaran Nilai-ke-R?
Ya . Walaupun berada di sebelah kanan tugasan, x masih merupakan nilai. Pengendali tugasan memerlukan lnilai di sebelah kiri (di mana nilai disimpan) dan prnilai di sebelah kanan (sumber nilai).
Kesimpulan:
Oleh itu, sebelah kanan x mengalami penukaran nilai-ke-nilai, dan kerana ia merujuk kepada nilai yang tidak dimulakan, kod yang disediakan mempunyai tingkah laku tidak ditentukan.
Atas ialah kandungan terperinci Mengapakah `int x = x;` Menghasilkan Gelagat Tidak Ditakrifkan dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!