Rumah > Artikel > pembangunan bahagian belakang > Mengapa Rujukan Bukan Const Tidak Boleh Mengikat Lnilai Pelbagai Jenis dalam C ?
Mengikat Rujukan Bukan Const kepada Lnilai Pelbagai Jenis
Dalam C , rujukan bukan const lvalue (&) tidak boleh terikat kepada lnilai jenis yang berbeza, seperti yang ditunjukkan oleh contoh di bawah:
int a; double &m = a; // Error: non-const lvalue reference cannot bind to an lvalue of different type
Ini adalah kerana rujukan bukan const m cuba untuk mengikat objek sementara yang dibuat semasa tugasan. Rujukan bukan const tidak boleh terikat kepada sementara.
Walau bagaimanapun, pertimbangkan contoh berikut:
const double &m = a; // Valid
Dalam kes ini, rujukan const m terikat pada nilai bukan const, dan penukaran daripada int kepada dua kali ganda dibenarkan. Ini kerana rujukan const melindungi nilai asas daripada diubah suai, menghapuskan potensi rasuah data yang mungkin timbul daripada mengikat rujukan bukan const kepada sementara.
Oleh itu, apabila anda cuba untuk mengikat bukan- rujukan const kepada nilai jenis yang berbeza, ralat akan berlaku disebabkan oleh ketidakupayaan rujukan bukan const untuk mengikat sementara.
Atas ialah kandungan terperinci Mengapa Rujukan Bukan Const Tidak Boleh Mengikat Lnilai Pelbagai Jenis dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!