Bahasa C dan C membezakan antara literal rentetan dan literal lain apabila ia berkaitan dengan status nilai L mereka . Memahami rasional di sebalik perbezaan ini memerlukan menyelidiki perbezaan antara literal rentetan dan literal lain dari perspektif berorientasikan objek.
Walaupun semua literal mewakili nilai tetap, termasuk nombor, aksara, dan nilai boolean, literal rentetan menonjol sebagai objek. Objek berada dalam ingatan dan mempunyai alamat, menjadikannya boleh diakses untuk pengubahsuaian. Literal lain, sebaliknya, disimpan dalam daftar atau pemalar dan tidak boleh diubah suai.
Dalam C dan C , nilai-L merujuk kepada pembolehubah yang boleh diberikan nilai (iaitu, nilai kiri). Memandangkan objek ialah satu-satunya entiti yang boleh diberikan nilai dan diubah suai, masuk akal bahawa literal rentetan, sebagai objek, layak sebagai nilai-L.
Jenis tatasusunan digunakan untuk mewakili literal rentetan dalam C dan C . Tatasusunan dalam C tidak boleh wujud dalam ungkapan sebagai apa-apa selain nilai-L. Untuk menggunakan literal rentetan sebagai nilai L, ia diberikan jenis tatasusunan dan bukannya jenis penunjuk. Pendekatan ini, bagaimanapun, menjadikan literal rentetan kurang serba boleh, kerana ia tidak boleh digunakan dengan operator saiz.
Dengan pengenalan literal majmuk dalam C99, konsep bukan objek literal ialah nilai-L yang dilanjutkan kepada binaan lain, menjadikan status nilai-L unik bagi literal rentetan kurang luar biasa.
Perbezaan antara nilai-L dan nilai-R secara teorinya berkaitan dengan seni bina perkakasan. Nilai-L merujuk kepada lokasi memori, manakala nilai-R mewakili nilai yang disimpan dalam daftar atau komponen perkakasan khusus, seperti timbunan atau storan malar. Walau bagaimanapun, penyusun moden mengoptimumkan kod untuk mengaburkan perbezaan ini, membenarkan nilai R disimpan dalam ingatan jika bermanfaat untuk prestasi.
Atas ialah kandungan terperinci Mengapakah Huruf Rentetan Dianggap sebagai Nilai-L dalam C dan C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!