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
808 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!

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