关于 i++和++i,的一点总结
我们先来看几个例子:int i=5,j=5,p,q;
p=(i++)+(i++);
q=(++j)+(++j);
printf("%d,%d,%d,%d\n",i,j,p,q);
i=5;j=5;
p=(i++)+(i++)+(i++);
q=(++j)+(++j)+(++j);
printf("%d,%d,%d,%d\n",i,j,p,q);
i=5;j=5;
p=(i++)+(i++)+(i++)+(i++);
q=(++j)+(++j)+(++j)+(++j);
printf("%d,%d,%d,%d\n",i,j,p,q);
i=5;j=5;
p=(i++)+(i++)+(i++)+(i++)+(i++);
q=(++j)+(++j)+(++j)+(++j)+(++j);
printf("%d,%d,%d,%d\n",i,j,p,q);
结果是
7,7,10,14
8,8,15,22 (7+7+8=22)
9,9,15,22
10,10,25,41
可见,a++这类运算,是整个式子算完后,统计下有几个++,在同一给a加上几。而++a这类,在不超过2个时,是先统计有几个++,然后给每一个都加上去,在进行赋值。超过2个时,则从第3个开始分布来,前2个用刚才的法则算完之后,第3个吧前面的道德值拿来用。
看见有网友在问,就自己搜了下,整理了让大家看看