-2

我们的第一学期考试有一个问题。

int a=10, b; b = ++a + ++a;

有些学生说答案是 22,有些学生说是 23。但是当我做这个程序时,我得到的答案是 24。现在我很困惑。请帮我

4

1 回答 1

0

就我而言,答案应该是 23 ......

a= 10

++a 在访问 a 时递增,而 a++ 访问然后在返回 a 后递增。

因此 b = 11 + 12 = 23

这可能对您有所帮助,尽管某些语言似乎可以产生不同的结果.. http://www.geekinterview.com/question_details/62782

编辑:

似乎不同的编译器对操作的处理方式不同。理论上它应该是 23,但是如果你的编译器在其他任何事情之前处理 ++a 操作(而不是像理论上那样从左到右),那么你的答案将是 b= 12+12 = 24

于 2013-09-24T14:30:54.183 回答