int q, p=5;
q=(++p)+(++p)+(++p);
我的计算结果为21,机器答案为22. 纠结了半天
详细分析计算过程,谢谢各位大虾。
C语言计算问题, 纠结中···
答案:3 悬赏:20 手机版
解决时间 2021-05-04 05:56
- 提问者网友:咪咪
- 2021-05-03 08:14
最佳答案
- 五星知识达人网友:不想翻身的咸鱼
- 2021-05-03 08:37
因为C++里面两个结合后存储后在与第三个相加的。所以第三个不影响;
nt q, p=5;
q=(++p)+(++p)+(++p);
相当于 q=(++p)+(++p);//7+7,因为第二个要影响第一个。
q=q+(++p);//7+8
所以Q=22;
全部回答
- 1楼网友:渊鱼
- 2021-05-03 11:33
(++p)+(++ip),第一次++p,值为6(第一个加数增加1);第二次++p,值为7(第二个加数自加1);此时注意了,第二个加数的自加同时影响第一个加数,因为都是p,储存在同一个单元,所以(++i)+(++i )的结果是7+7,为14;此时14储存在内存单元,不自加,而++p再次自加,为8。所以,最后结果为14+8=22.
- 2楼网友:痴妹与他
- 2021-05-03 10:09
不同的编译器可能会有不同的答案.. C语言规则里没有规定这种情况下答案一定是22.
所以没有一定的答案. 这是编译器决定的.
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯