int i=9,j=8;printf("%d %d\n", (++i, j--), ++i); 打
答案:2 悬赏:40 手机版
解决时间 2021-11-15 06:40
- 提问者网友:不爱我么
- 2021-11-14 17:56
int i=9,j=8;printf("%d %d\n", (++i, j--), ++i); 打
最佳答案
- 五星知识达人网友:山有枢
- 2021-11-14 18:54
printf("%d %d\n",(++i,j--),++i);相当于i++; printf("%d %d\n",j--,++i);
执行顺序:
i++;[i=10]
处理printf最后一个参数:先算i++;[i=11],i的值入栈[11]
处理倒数第2个参数:j的值入栈[8],计算j--;
printf(%d %d %d\n",(++i,j--),++i,i);相当于i++; printf("%d %d %d\n",j--,++i,i);
执行顺序:
i++;[i=10]
倒着处理各参数:
i的值入栈[10]
i++;[i=11],i的值入栈[11]
j的值入栈[8],j--;[j=7]
执行顺序:
i++;[i=10]
处理printf最后一个参数:先算i++;[i=11],i的值入栈[11]
处理倒数第2个参数:j的值入栈[8],计算j--;
printf(%d %d %d\n",(++i,j--),++i,i);相当于i++; printf("%d %d %d\n",j--,++i,i);
执行顺序:
i++;[i=10]
倒着处理各参数:
i的值入栈[10]
i++;[i=11],i的值入栈[11]
j的值入栈[8],j--;[j=7]
全部回答
- 1楼网友:詩光轨車
- 2021-11-14 19:14
第一个print : (++i,j--)运算结果是j。也就是8. 运算后i == 10. j==7. 再次++i;i == 11输出8 11;
运行结束后 i ==11;j = 8
第二个输出 7 13;
第三个输出 6 15 15;计算方式同第一个。
运行结束后 i ==11;j = 8
第二个输出 7 13;
第三个输出 6 15 15;计算方式同第一个。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯