Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

Lvalues ​​และ Rvalues ​​ใน C ++ คืออะไร


ค่า lvalue (ค่าตัวระบุตำแหน่ง) แสดงถึงวัตถุที่ใช้ตำแหน่งที่ระบุได้บางส่วนในหน่วยความจำ (เช่น มีที่อยู่)

rvalues ​​ถูกกำหนดโดยการยกเว้น ทุกนิพจน์เป็นค่า lvalue หรือ rvalue ดังนั้น rvalue คือนิพจน์ที่ไม่ได้เป็นตัวแทนของวัตถุที่ครอบครองตำแหน่งที่ระบุได้บางส่วนในหน่วยความจำ

สำหรับ ตัวอย่าง , การมอบหมายคาดว่า lvalue จะเป็นตัวถูกดำเนินการทางซ้าย ดังนั้นสิ่งต่อไปนี้จึงถูกต้อง −

int i = 10;
But this is not:
int i;
10 = i;

เป็นเพราะ ฉัน มีที่อยู่ในหน่วยความจำและเป็น lvalue . ในขณะที่ 10 ไม่มีตำแหน่งหน่วยความจำที่สามารถระบุได้และด้วยเหตุนี้จึงเป็น rvalue . จึงกำหนดค่าของ i ถึง 10 ก็ไม่สมเหตุสมผล