Rumah >pembangunan bahagian belakang >C++ >Mengapakah String Literals L-Values dalam C dan C ?
Dalam pengaturcaraan, literal mewakili nilai malar yang tidak boleh diubah suai. Walau bagaimanapun, dalam C dan C, literal rentetan menonjol sebagai pengecualian kepada peraturan ini. Walaupun semua literal lain ialah nilai-r (sementara), literal rentetan mempunyai ciri khas sebagai nilai-l.
Rasional untuk Huruf Rentetan sebagai Nilai-L
Tingkah laku unik ini berpunca daripada sifat intrinsik literal rentetan. Tidak seperti literal jenis data asas (cth., integer, nombor titik terapung), literal rentetan menyerupai objek. Dalam C, tatasusunan ialah binaan yang paling hampir dengan objek, dan literal rentetan pada asasnya ialah tatasusunan aksara.
Kepentingan Nilai-L
Nilai-L menunjukkan objek yang boleh ditugaskan kepada dan tinggal di lokasi ingatan yang boleh dikenal pasti. Dalam kes tatasusunan, menjadi nilai-l membenarkan manipulasi langsung elemen individu. Sebaliknya, nilai-r tidak boleh ditugaskan secara langsung dan mewakili nilai sementara.
Pertimbangan Model Memori
Perbezaan antara nilai-l dan nilai-r berakar umbi dalam komputer seni bina. Komputer awal menggunakan kawasan memori yang berasingan untuk pengubahsuaian (boleh ditulis) dan mengambil (baca sahaja). Nilai-L mewakili data yang boleh diubah suai, manakala nilai-r berfungsi sebagai rujukan tidak berubah.
Pertimbangan Reka Bentuk Alternatif
Harta rentetan mungkin direka bentuk dengan jenis penuding, menyerupai penunjuk tetap untuk rentetan "kandungan". Walau bagaimanapun, pendekatan sedemikian akan mengurangkan kegunaannya. Sebagai contoh, saiz pengendali mungkin tidak boleh digunakan untuk mereka.
Evolusi dalam C99
Piawaian C99 memperkenalkan literal kompaun, memberikan status nilai-l kepada literal lain. Perubahan ini menekankan lagi bahawa nilai-l tidak lagi terhad kepada literal rentetan sahaja tetapi menjadi kebiasaan.
Atas ialah kandungan terperinci Mengapakah String Literals L-Values dalam C dan C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!