Rumah > pembangunan bahagian belakang > C++ > Mengapakah Pra-Kenaikan (i) Adalah Nilai-L Manakala Selepas Kenaikan (i ) Bukan?

Mengapakah Pra-Kenaikan (i) Adalah Nilai-L Manakala Selepas Kenaikan (i ) Bukan?

Susan Sarandon
Lepaskan: 2024-11-03 00:24:29
asal
758 orang telah melayarinya

Why Is Pre-Increment (  i) An L-Value While Post-Increment (i  ) Is Not?

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.
Salin selepas log masuk

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.
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan