Mengapa Pra-Peningkatan merupakan Nilai-L?
Sedangkan kedua-dua pra-kenaikan ( i) dan pasca-kenaikan (i ) kenaikan pembolehubah, mereka berbeza dengan ketara apabila ia datang untuk menjadi nilai-l. Nilai l ialah ungkapan yang merujuk kepada lokasi memori yang boleh diubah suai.
Penjelasan
Tambahan selepas (i ) mengembalikan nilai asal pembolehubah i dan bukannya rujukan kepadanya. Akibatnya, saya tidak boleh ditugaskan kerana ia mewakili nilai yang dikira tanpa lokasi yang boleh diubah suai. Pertimbangkan contoh berikut:
int i = 5; i++; // Cannot assign a value to i++ because it does not represent a variable.
Sebaliknya, pra-kenaikan ( i) mengembalikan rujukan kepada pembolehubah bertambah. Ini membolehkan ia ditetapkan kepada, kerana ia menunjuk kepada lokasi memori yang boleh diubah suai. Contohnya:
int i = 5; ++i; // The pre-increment returns a reference to the incremented variable.
Oleh itu, i boleh dianggap sebagai nilai-l kerana ia memberikan rujukan kepada lokasi memori yang boleh diubah suai, manakala saya tidak boleh kerana ia mewakili nilai yang dikira. Selain itu, pra-kenaikan diutamakan atas sebab prestasi, terutamanya dengan objek berwajaran berat seperti iterator, kerana pendekatan berasaskan rujukannya.
Atas ialah kandungan terperinci Mengapakah Pra-Kenaikan (i) Adalah Nilai-L Manakala Selepas Kenaikan (i ) Bukan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!