标题:初来乍到的小萌新,望各路高手多多相助。有个问题想请教大佬们。
只看楼主
涛声依旧了
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2020-2-2
结帖率:100%
已结贴  问题点数:20 回复次数:2 
初来乍到的小萌新,望各路高手多多相助。有个问题想请教大佬们。
#include <stdio.h>
void main()
{
   int i=5,j=5,p,q;
   p=(i++)+(i++)+(i++);
   q=(++j)+(++j)+(++j);
   printf("%d,%d,%d,%d\n",p,q,i,j);
}


想问一下,那个图中的22是怎么来的?
万分感谢
搜索更多相关主题的帖子: printf i++ int 多多 void 
2020-02-03 19:14
纯蓝之刃
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:76
帖 子:554
专家分:3690
注 册:2019-7-29
得分:20 
你这个题实际是没有什么太大的意义的,实际上没有人会在正常使用中这样使用变量的,如果非要说,按照正常来看的话结果应该是15,24,8,8.
但是如果编译器遵循新的c++标准,代码都是++j三次做完之后统一对三个操作数做了两次+运算,这样3个数的和是24,
如果编译器遵循老的c++标准,做了两次++j之后做的前两个操作数的+运算,然后又做的++j,然后再做的第二次加法,这样3个数的和是22。
https://bbs.

一沙一世界,一花一天堂。无限掌中置,刹那成永恒。
2020-02-03 19:43
涛声依旧了
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2020-2-2
得分:0 
回复 2楼 纯蓝之刃
非常感谢您的帮助!

书山有路勤为径,学海无涯苦作舟。
2020-02-03 21:48



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-499087-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.196732 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved