永发信息网

下面程序的运行结果是( ).y=5; x=14; y=((x=3*y,x+6),x-1); printf(x=%d,y

答案:1  悬赏:0  手机版
解决时间 2021-07-29 21:25
  • 提问者网友:像風在裏
  • 2021-07-29 15:16
下面程序的运行结果是( ).y=5; x=14; y=((x=3*y,x+6),x-1); printf(x=%d,y=%d,x,y);
这个逗号表达式不需要计算X+6吗?
第一个表达式的结果是21,那X-1的时候X还是取15?为什么?
最佳答案
  • 五星知识达人网友:山有枢
  • 2021-07-29 16:01

计算了,但是返回了x=3*y的值,因为x+6是表达式而不是赋值语句,执行前后不改变x的值,执行过程大致是这样,y=((x=3*5,x+6),x-1);=((x=15,x+6),x-1)=((15,21),15-1)=(21,14)=14.返回14.如果想要改变x的值必须使用赋值语句例如y=((x=3*y,x+6),x-1); 改为y=((x=3*y,x+=6),x-1);那么就是y=((x=15,x+=6),x-1)=((15,x=15+6),x-1)=((15,21),21-1)=(21,20)=20结果就是x=21,y=20.


我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯