C语言大佬们求助

52次阅读

共计 525 个字符,预计需要花费 2 分钟才能阅读完成。

在学 C 语言 学到了一个自增变量
a=5
x=(a++)+(a++)+(a++);
这个能理解 应该等于 18 吧 15+1+1+1
y=(++a)+(++a)+(++a);
这个我的理解是 6+7+8=21 但是为啥跑出来会等于 22?

这种东西只会出现在考试 实际毫无卵用考 ++ a 和 a ++ 这种毫无意义自增如果你在打竞赛 / 写项目的情况下写这种我会打死你C 语言大佬们求助我好像还没忘 19 22y=(++a)+(++a)+(++a);
7+7+8 = 22
纠结这个貌似意义不大这种东西 C 语言中没有标准定义,答案看编译器,碰见这种出题人,骂就对了 C ++ primer plus 中文第六版,第 135 页自己看

AD 盖 发表于 2022-11-10 21:08
这种东西 C 语言中没有标准定义,答案看编译器,碰见这种出题人,骂就对了

支持 + 1 正常人不会这么写,实际上程序越简洁越好你是不是看的谭浩强的 c 语言程序设计
天天这套搞鸡毛
浪费青春啊看到这种提交,直接 review- 1 你这答案都错了吧,第一个明显是 5 +6+7 18 第二个是 6 +7+8,21 和 c 没啥关系用 C 看最后编译器编译成什么,它会搞些内链计算。可能不同编译器答案不一样,从语言本身来说,答案是 21 没错

正文完
 0