下面语句:
int i=0,j;
j = ++i++;
是错误的。原因如下:
后置递增运算符的优先级高于前置递增,因而j = ++i++;等价于 j= ++(i++); 由于 i++ 返回的是原始 i 的一个副本,且是作为不可更改的右值,因而对这个右值进行前置递增会出错。
Ps: 前置递增返回的是递增后的对象本身。
下面语句:
int i=0,j;
j = ++i++;
是错误的。原因如下:
后置递增运算符的优先级高于前置递增,因而j = ++i++;等价于 j= ++(i++); 由于 i++ 返回的是原始 i 的一个副本,且是作为不可更改的右值,因而对这个右值进行前置递增会出错。
Ps: 前置递增返回的是递增后的对象本身。