| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 685 人关注过本帖
标题:初来乍到的小萌新,望各路高手多多相助。有个问题想请教大佬们。
只看楼主 加入收藏
涛声依旧了
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
帖 子:566
专家分: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
快速回复:初来乍到的小萌新,望各路高手多多相助。有个问题想请教大佬们。
数据加载中...
 
   



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

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