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