Lvalue (giá trị định vị) đại diện cho một đối tượng chiếm một vị trí bộ nhớ có thể xác định được (tức là có địa chỉ).
Rvalue được định nghĩa bằng cách loại trừ. Mọi biểu thức đều là lvalue hoặc rvalue, do đó rvalue là biểu thức không đại diện cho đối tượng chiếm vị trí bộ nhớ có thể xác định.
Ví dụ: phép gán mong đợi lvalue làm toán hạng trái, nên đoạn sau hợp lệ:
int i = 10;
Nhưng đoạn này không hợp lệ:
int i; 10 = i;
Điều này là vì i có địa chỉ trong bộ nhớ và là lvalue. Trong khi 10 không có vị trí bộ nhớ xác định nên là rvalue. Việc gán giá trị của i cho 10 không có ý nghĩa.