int a=0;
++(a++);
或者++a++;
程序出錯;因為a++返回的是一個臨時變量,而臨時變量都是const,表示的是一個右值,對常量++顯然錯誤。
左值和右值的區分:
左值和右值都是針對表達式而言的,左值是指表達式結束后依然存在的持久對象,右值是指表達式結束時就不再存在的臨時對象。一個區分左值與右值的便捷方法是:看能不能對表達式取地址,如果能,則為左值,否則為右值。
int a=0;
++(a++);
或者++a++;
程序出錯;因為a++返回的是一個臨時變量,而臨時變量都是const,表示的是一個右值,對常量++顯然錯誤。
左值和右值的區分:
左值和右值都是針對表達式而言的,左值是指表達式結束后依然存在的持久對象,右值是指表達式結束時就不再存在的臨時對象。一個區分左值與右值的便捷方法是:看能不能對表達式取地址,如果能,則為左值,否則為右值。