以下是引用Sally_SJL在2006-8-1 21:45:38的发言:
main()
{ int i=3,c;
c=(i++)+(++i)+(i++);
printf("%d",c);
}
运行的结果是12
可是我觉得,
第一个括号i++是先取i的值3然后i加1
第二个括号是先对i加1在取值5
第三个括号是先取i的值5再让i加1
但这样的话结果是13 i的值是6
为什么上机调试是12呢?
这是同步运算,当执行第一个括号时,i=3;接着执行第二个括号时,i=4;执行第三个括号i=4,4+4+4=12,这是同步运算!