左值or右值、临时变量是const

int a=0;

++(a++);

或者++a++;

程序出错;因为a++返回的是一个临时变量,而临时变量都是const,表示的是一个右值,对常量++显然错误。


左值和右值的区分:

左值和右值都是针对表达式而言的,左值是指表达式结束后依然存在的持久对象,右值是指表达式结束时就不再存在的临时对象。一个区分左值与右值的便捷方法是:看能不能对表达式取地址,如果能,则为左值,否则为右值。

你可能感兴趣的:(左值or右值、临时变量是const)