鱼C论坛

 找回密码
 立即注册
查看: 2133|回复: 17

[已解决]在自增计算中,为什么这个代码 运算不了QAQ

[复制链接]
发表于 2018-8-2 12:47:53 | 显示全部楼层 |阅读模式

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

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

x
#include <stdio.h>
int main()
{
        int i=5, j=5,p,q;
        p=(i++)+(i++)+(i++);
        q=(++j)+(++j)+(++j);
        printf ("%d,%d,%d,%d",p,q,i,j);
}
最佳答案
2018-8-2 13:19:12
本帖最后由 798236606 于 2018-8-2 13:20 编辑

devc++运行结果是18,22,8,8
q的结果理论上应该是21,我也很懵逼,在网上百度了一手才明白。
做类似(++n)运算是直接在内存中完成的,相当于是用汇编里的自加运算,直接修改内存中n的值. 因此,做第一次(++j)后,j=6,做第二个(++j)后,j=7;此时才做第一次括号外的加法,并把结果保存在临时变量中temp=14;而此时内存中的j已经是7了. 然后在做一次(++j),即j=8;此时j与临时变量temp相加,就是最终结果q=22.
不提倡这种写法,可移植性很差。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-8-2 12:49:33 | 显示全部楼层
编译器是Dev-C++ 5.10的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-2 13:04:55 | 显示全部楼层
最后添加个
return 0;
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-2 13:06:38 | 显示全部楼层
5.9.2-DEV可以正常运行。。。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-2 13:19:12 | 显示全部楼层    本楼为最佳答案   
本帖最后由 798236606 于 2018-8-2 13:20 编辑

devc++运行结果是18,22,8,8
q的结果理论上应该是21,我也很懵逼,在网上百度了一手才明白。
做类似(++n)运算是直接在内存中完成的,相当于是用汇编里的自加运算,直接修改内存中n的值. 因此,做第一次(++j)后,j=6,做第二个(++j)后,j=7;此时才做第一次括号外的加法,并把结果保存在临时变量中temp=14;而此时内存中的j已经是7了. 然后在做一次(++j),即j=8;此时j与临时变量temp相加,就是最终结果q=22.
不提倡这种写法,可移植性很差。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-2 19:34:50 | 显示全部楼层
BngThea 发表于 2018-8-2 13:04
最后添加个
return 0;

不行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-2 19:35:26 | 显示全部楼层
Charles未晞 发表于 2018-8-2 13:06
5.9.2-DEV可以正常运行。。。。。。

............
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-2 19:39:34 | 显示全部楼层
798236606 发表于 2018-8-2 13:19
devc++运行结果是18,22,8,8
q的结果理论上应该是21,我也很懵逼,在网上百度了一手才明白。
做类似(++n)运 ...

问题是,我这个连单单的运行都运行不了......
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-2 19:46:27 | 显示全部楼层
安静路过 发表于 2018-8-2 19:39
问题是,我这个连单单的运行都运行不了......

不能运行,那一定是报错了吧
截图,把报错信息贴出来
不然我也不知道出了什么问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-2 20:19:58 | 显示全部楼层
人造人 发表于 2018-8-2 19:46
不能运行,那一定是报错了吧
截图,把报错信息贴出来
不然我也不知道出了什么问题

C:\Users\17901\Desktop
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-2 20:21:37 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-2 20:22:09 | 显示全部楼层
人造人 发表于 2018-8-2 19:46
不能运行,那一定是报错了吧
截图,把报错信息贴出来
不然我也不知道出了什么问题

额。。。冒昧的问一句,怎么发截图?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-2 20:28:00 | 显示全部楼层
安静路过 发表于 2018-8-2 20:22
额。。。冒昧的问一句,怎么发截图?

额。。。。我刚刚去重新建立一个项目和一个新文件,把代码打上去后运行,发现。。。。成功了

我也很无语...但是我不知道原因....
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-2 20:28:09 | 显示全部楼层
安静路过 发表于 2018-8-2 20:22
额。。。冒昧的问一句,怎么发截图?

1.png
2.png
3.png
4.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-2 21:19:55 | 显示全部楼层
额.........我知道了我这里有两个函数(main)了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-2 22:02:07 | 显示全部楼层

噢,谢谢大大!
00.PNG
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-2 22:12:03 | 显示全部楼层
1.png

multiple definition of 'main'
是什么意思?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-2 23:39:52 | 显示全部楼层
VS2017运行结果:15,24,8,8
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-2 08:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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