C 语言的++操作见鬼了,两台电脑上结果不一样是什么原因?

2017-11-11 11:42:37 +08:00
 Luckyray

昨天跟朋友讨论一个考研题目,关键点是这样:
int a=1 ;
a*++a 等于多少?
我说 1*2 嘛,他非说是 2*2,然后各自试了试...
这是我的


这是他的

真奇怪....哪位大佬知道原因是啥? c 语言和 c++对++操作有不同的定义?还是因为 c 语言不同年份的标准不一样?

3718 次点击
所在节点    问与答
25 条回复
monkeymonkey
2017-11-11 22:10:42 +08:00
我曾经问过 Stanley B. Lippman 对这种事情的看法,他说他不会在意这种细节,标准没规定,然后他送了我一本他的签名书。我现在有点后悔没有问他点更有深层意义的问题(摊手
WhoMercy
2017-11-11 22:24:15 +08:00
@monkeymonkey
羡慕,流口水🤤
ech0x
2017-11-11 22:27:09 +08:00
@monkeymonkey 厉害!羡慕。。。
malusama
2017-11-12 00:00:54 +08:00
最左推导和最右推导?
anmaz
2017-11-12 00:07:52 +08:00
详见 c99 规范,搜索 c 语言副作用

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/405503

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX