鱼C论坛

 找回密码
 立即注册
查看: 5177|回复: 5

[已解决]我想问下q是怎么得到22的

[复制链接]
发表于 2017-5-30 17:18:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 Chulainn 于 2017-5-31 22:05 编辑

我自己觉得应该是6+7+8=21,而不是22.

难以理解机器是怎么算的

  1. #include <stdio.h>
  2. void main()
  3. {
  4.         int i=5,j=5,p,q;
  5.         p=(i++)+(i++)+(i++);
  6.         q=(++j)+(++j)+(++j);
  7.         printf("%d\n,%d\n,%d\n,%d\n",p,q,i,j);
  8. }
复制代码



这个算出来q是22
最佳答案
2017-5-31 22:33:39
http://blog.csdn.net/qq_29169813/article/details/51416281
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-5-30 20:37:02 | 显示全部楼层
++j  相当于 j += 1;
q=(++j)+(++j)+(++j); (j += 1) +(j+=1)+(j+=1)
最后的j = 8  
q = 8 + 8 + 8
我这是24 为什么你那会是22
  
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-31 19:40:36 | 显示全部楼层
^_^^_^^_^^_^ 发表于 2017-5-30 20:37
++j  相当于 j += 1;
q=(++j)+(++j)+(++j); (j += 1) +(j+=1)+(j+=1)
最后的j = 8  

你好!22是  VC6.0 算出来的,我也不知道为啥
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-31 20:29:05 | 显示全部楼层
Chulainn 发表于 2017-5-31 19:40
你好!22是  VC6.0 算出来的,我也不知道为啥

下个断点  然后转到反汇编看看
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-31 22:05:10 | 显示全部楼层
^_^^_^^_^^_^ 发表于 2017-5-31 20:29
下个断点  然后转到反汇编看看

不好意思啊,我并不知道啥是断点和反汇编诶。我加的群里有个人跟我说这是未定义语言,可能会得出不同的答案。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-31 22:33:39 | 显示全部楼层    本楼为最佳答案   
http://blog.csdn.net/qq_29169813/article/details/51416281
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-14 20:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表