++增量运算符和--减量运算符有很高的结合优先级;只有圆括号比它们的优先级高。
所以x*y++代表(x)*(y++)而不是(x*y)++。
增量运算符和减量运算符只能影响一个变量。而组合x*y本身不是一个变量。
int y =2;
int n =3;
int num = (y+n++)*6;
用值来代替变量可以得到:
num = (2+3)*6
只有当使用了n之后,n的值才增加到4。优先级告诉我们++只属于n
而不属于y+n。它也告诉我们什么时候使用n的值计算表达式,而增量运算符的性质决定了什么时候改变n的值。
当n++是表达式的一部分时,可以理解为先使用n,然后将它的值增加,++n可以理解为先将n值增加,然后再使用。