【发布时间】:2013-09-24 14:14:58
【问题描述】:
我们在第一学期考试中有一个问题。
int a=10, b; b= ++a + ++a;
有些学生说答案是 22,有些学生说是 23。 但是当我做这个程序时,我得到的答案是 24。 现在我很困惑。 请帮帮我
【问题讨论】:
标签: operator-keyword increment prefix
我们在第一学期考试中有一个问题。
int a=10, b; b= ++a + ++a;
有些学生说答案是 22,有些学生说是 23。 但是当我做这个程序时,我得到的答案是 24。 现在我很困惑。 请帮帮我
【问题讨论】:
标签: operator-keyword increment prefix
就我而言,答案应该是 23...
a= 10
使用 ++a 在访问 a 时递增,而 a++ 访问然后在返回 a 后递增。
因此 b = 11 + 12 = 23
这可能对您有所帮助,尽管某些语言似乎会产生不同的结果..http://www.geekinterview.com/question_details/62782
编辑:
似乎不同的编译器对操作的处理方式不同。理论上它应该是 23,但是如果你的编译器在其他任何事情之前处理这两个 ++a 操作(而不是像理论上那样从左到右),那么你的答案将是 b= 12+12 = 24
【讨论】: