main()
{
int x=20,y=35;
x=y++ + x++;
//x++和y++操作都是先将原值代入表达式,再进行自增处理。所以x=y++ + x++=35+20=55,表达式计算完毕后,x,y再进行自增处理,x当前为55,自增后为56;y当前为35,自增后为36
y= ++y + ++x;
//++x和++y操作都是先进行自增处理,再将自增后的值代入表达式。所以x,y先进行自增处理,x当前为56,自增后为57;y当前为36,自增后为37。 y= ++y + ++x=37+57=94
printf(“%d%dn”,x,y); }//所以输出x为57,y为94
x=y++ + x++; /* 执行后x=56, y=36 */
y= ++y + ++x; /* 执行后x=57, y=94 */
请教:
1. 在Ubuntu-14.04下GCC运行的结果是:
x=56, y=93。
2. 执行语句x=y++ + x++; 后,(当前值)x=55, y=35;
因为该语句中y++的原因,y确实是自加了1;因为该语句中x++的原因,x应该自加1,但是x却没有自加1,为什么呢?
祝快乐一天!