关键:自增减(++/--)前置:在运算之前改变变量
自增减(++/--)后置:在运算之后改变变量
要真正的理解这两句话的内涵,自增减前置在运算之前改变变量,运算时是不变的,即使运算过程中遇到自增减后置时变量也是不变的,因为自增减后置是在运算完成后改变变量
int main()
{
int i = 0;
int j = i++ + ++i;//++i优先级高于i++,所以相当于int j=++i + i++;
//此时i=0,1(此时i=1)+1(此时i=2)=2
int k = --i + i--;//此时i=2,(此时i=1)1+1(此时i=0)=2
printf("%d %d %d\n", i, j, k);
return 0;
}
当运行int j = i++ + ++i;
分析优先级:自加高于+,两个自加同级从左向右计算;其中++i的优先级比i++高,即变为
int j=++i + i++
运算之前:因为++i,在运算之前使得变量i加一(0+1=1);此时i=1