A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

main()
{
inti=5,j=5,p,q;
p=(i++)+(i++)+(i++);
q=(++j)+(++j)+(++j);
printf("%d,%d,%d,%d\n",p,q,i,j);
printf("%d,%d\n",i,j);
q运行出来的答案是22,为什么????

15 个回复

倒序浏览
我运行的q等于21 为何你的等于22.....
回复 使用道具 举报
为什么我的是等于21呢,你的是22呢,不明白
回复 使用道具 举报
shane_west 发表于 2015-4-10 10:12
我运行的q等于21 为何你的等于22.....

难道是编译器的不同?在百度上找了下,是这样解释的7+7+8=22,先计算前两个(++j)的和,第一个++j后,变为6,第二个++j后j变为7,于是(++j)+(++j)先加起来就是14,再算第三个(++j)变为8.     
  14+(++j)=22.
回复 使用道具 举报
枫宇翔 发表于 2015-4-10 10:34
为什么我的是等于21呢,你的是22呢,不明白

估计是编译器不同
回复 使用道具 举报
应该是21吧,6+7+8=21
回复 使用道具 举报
我叫顺子 发表于 2015-4-10 10:36
难道是编译器的不同?在百度上找了下,是这样解释的7+7+8=22,先计算前两个(++j)的和,第一个++j后,变 ...

为什么前两个是14呢?
回复 使用道具 举报
可乐zj 发表于 2015-4-10 10:47
应该是21吧,6+7+8=21

VC6的答案是22,VS24,这个是编译器的问题,已经明白
回复 使用道具 举报
落羽 中级黑马 2015-4-10 10:53:08
9#
我的也是  21  
回复 使用道具 举报

用到是哪个编译器?
回复 使用道具 举报
我叫顺子 发表于 2015-4-10 10:53
用到是哪个编译器?

用的是vc++6.0
回复 使用道具 举报

为何我的22,郁闷
回复 使用道具 举报
想不明白  先记下来 后来看着看着就明白了
回复 使用道具 举报
xcode 运行的结果也是21啊
回复 使用道具 举报
另外你可以看看这个网址:http://www.zhihu.com/question/23180989
回复 使用道具 举报
我的也是21.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马