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