main() { int x=20,y=35; x=y++ + x++; y= ++y + ++x; printf(“%d%dn”,x,y); } Answer : 5794

2025-02-23 14:55:08
推荐回答(3个)
回答1:

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

回答2:

x=y++ + x++; /* 执行后x=56, y=36 */
y= ++y + ++x; /* 执行后x=57, y=94 */

回答3:

请教:
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,为什么呢?
祝快乐一天!