运行结果与教材出入,请高手解答。
操作系统:Windows XP编译软件:C-free5.0汉化版
练习程序:
-------------------------------------------
#include<stdio.h>
main()
{
int i=5,j=5,p,q;
p=(i++)+(i++)+(i++);
q=(++j)+(++j)+(++j);
printf("%d,%d,%d,%d\n",p,q,i,j);
}
-------------------------------------------
执行结果:
-------------------------------------------
15,22,8,8
請按任意鍵繼續 . . .
-------------------------------------------
疑问:根据教材所说,结果理应为:15,24,8,8。可以看出q的结果不正确,通过增加“+(++j)”的个数,依次得到如下值:22,31,41,52...,所以我大胆猜测前两个(++j)均为7,后面依次为8,9,10,11...不知机制为何?是编译软件的原因还是c语言本来就如此规定?望解答。
其他:今日注册,第一次发贴,有违发贴规则的话,请见谅。