++i与i++区别?
++i:先加1,再参与运算
i++:先运算,再加1
(你可以输出下列的代码 看看执行效果就明白了)
#include
main()
{
int i=4,j=8,m,n;
m=i++;//先把i的值赋给m。修改i的值,使其加1 m=4 i=5
n=++j;//n=9 j=9
printf("%d %d %d %d ",i,j,m,n,);//i=5 m=4
}
或者你可以对比
n=j++;//n=9 j=9
printf("%d ",n);
printf("%d",j++);
printf函数的执行顺序是自右向左的 所以先进行自加运算再进行输出 结果为6 6.
%d是控制符,控制你输出的是十进制的整型
不能保证的原因是大多的编译器printf运算的顺序是 自右向左。
只要是因为逗号运算符使语句执行,从右往左执行了