鱼C论坛

 找回密码
 立即注册
查看: 1481|回复: 13

[已解决]关于C语言的一段简单程序的问题

[复制链接]
发表于 2021-7-14 08:45:58 | 显示全部楼层 |阅读模式

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

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

x
#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",p, q, i, j);
}

为什么第一个i的值是15,q的值是24?
最佳答案
2021-7-14 22:14:19
为了考好 发表于 2021-7-14 21:47
是6  8  10,我不知道为啥是这样。。我以前也想的是3个8

q = (++j) + (++j) + (++j);
有可能是这样算的
先 j + 3 = 8
然后 8 + 8 + 8 = 24
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-7-14 19:12:45 | 显示全部楼层
跟编译器有关 没什么意义
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-14 20:45:14 | 显示全部楼层
万千只cnm 发表于 2021-7-14 19:12
跟编译器有关 没什么意义

?要是最初版的VC ++ 6.0是22,然后vs_community__1741591633.1585401897的运行结果是24,我感觉应该是24,一个一个试的,i的值分别是6  8   10 ,然后组成了24,就是不明白为啥是6   8   10
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-14 20:49:44 | 显示全部楼层
为了考好 发表于 2021-7-14 20:45
?要是最初版的VC ++ 6.0是22,然后vs_community__1741591633.1585401897的运行结果是24,我感觉应该是24 ...

这样的代码不符合标准,具体结果由编译器决定,不同的编译器结果很有可能不一样
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-14 20:53:12 | 显示全部楼层
q = (++j) + (++j) + (++j);
这不有 3 个 ++j 么
那就 j + 3 = 8
然后 8 + 8 + 8 = 24
你能说这样算 不对吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-14 20:53:16 | 显示全部楼层
人造人 发表于 2021-7-14 20:49
这样的代码不符合标准,具体结果由编译器决定,不同的编译器结果很有可能不一样

小甲鱼老师的,以前的C语言的例子让我们打的,况且这个也不报错,额
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-14 20:54:09 | 显示全部楼层
为了考好 发表于 2021-7-14 20:53
小甲鱼老师的,以前的C语言的例子让我们打的,况且这个也不报错,额

对呀,这样的代码没有语法错误
只是标准对此没有定义而已
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-14 21:18:54 | 显示全部楼层
不要过多纠结啦
只要理解自增自减就行了
这样写难以阅读而且没什么意思
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-14 21:31:15 | 显示全部楼层
万千只cnm 发表于 2021-7-14 21:18
不要过多纠结啦
只要理解自增自减就行了
这样写难以阅读而且没什么意思

啊这,我主要是为了考试,,我怕那个考试考这个,专升本的考试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-14 21:44:44 | 显示全部楼层
为了考好 发表于 2021-7-14 21:31
啊这,我主要是为了考试,,我怕那个考试考这个,专升本的考试

摸清楚考试要用的编译器,摸清楚编译器的计算规则,不然就只能碰运气
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-14 21:46:50 | 显示全部楼层
不同编译器结果还不同,不用搞懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-14 21:47:30 | 显示全部楼层
人造人 发表于 2021-7-14 20:53
q = (++j) + (++j) + (++j);
这不有 3 个 ++j 么
那就 j + 3 = 8

是6  8  10,我不知道为啥是这样。。我以前也想的是3个8
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-14 21:52:49 | 显示全部楼层
万户侯 发表于 2021-7-14 21:46
不同编译器结果还不同,不用搞懂

我就是想弄懂它的过程,对了老哥,考试会考这个吗,我怕考所以我才弄的这个
还有,碰到新人总是莫名的感觉
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-14 22:14:19 | 显示全部楼层    本楼为最佳答案   
为了考好 发表于 2021-7-14 21:47
是6  8  10,我不知道为啥是这样。。我以前也想的是3个8

q = (++j) + (++j) + (++j);
有可能是这样算的
先 j + 3 = 8
然后 8 + 8 + 8 = 24
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-15 06:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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