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

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

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

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

ตัวอย่าง การกำหนดค่า (assignment) คาดหวัง lvalue เป็น operand ซ้าย ดังนี้จึงถูกต้อง -

int i = 10;

แต่นี้ไม่ถูกต้อง -

int i; 10 = i;

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