左值和右值
左值和右值是由编译器设计创作者创造并沿用至今,尽管他们的定义和C语言并不严格吻合。
左值就是能够出现在赋值符号左边的东西,右值就是能够出现在赋值符号右边的东西,例如:
a=b+25
a是左值,b+25是右值
好,那么思考一下,a=b+25能不能写成b+25=a?为什么?
b+25=a
答案是不能。
因为左值是必须要标识一个可以储存结果值的位置,b+25并没有标注一个位置,所以是非法的。
复合赋值运算符
a=a+5
也可以写成
a+=5
*同理。
写一个例子,直观理解: