2.8 左值与右值
C++中的每个语句、表达式的结果分为左值与右值两类。左值指的是内存中持续存储的数
据,而右值是指临时存储的结果。
在程序中,声明过的独立变量如:
Int k;
short p;
char a;
它们都是左值。又如:
Int a = 0;
Int b = 2;
Int c = 3;
a = c-b;
b = a++;
c = ++a;
c--;
c-b是一个存储表达式结果的临时数据,它的结果将被复制到a中,它是一个右值。a++自
增的过程实质上是一个临时变量执行了表达式,而a的值已经自增了。++a恰好相反,它是自增
之后的a,是一个左值。由此可见,c-是一个右值。
左值都可以出现在表达式等号的左边,所以称为左值。若表达式的结果不是一个左值,那
么表达式的值一定是个右值。