我刚刚开始使用C++,所以不确定评估的顺序。 在下面的代码段,你可以看到在评估C时改变评估的顺序给了我不同的结果当我评估C *(line-i)/ i时,它给了我-131213633,当我评估它为(line-我)/我* C,它给了我145422675.我明白在第一种情况下,这是一个溢出问题,但我想了解评估顺序。C++中的评估顺序
C = C * (line - i)/i ;
(gdb) p line
$1 = 31
(gdb) p i
$2 = 15
(gdb) p C
$3 = 145422675
(gdb) p C * (line - i)/i
$4 = -131213633
(gdb) p (line - i)/i * C
$5 = 145422675
http://en.cppreference.com/w/cpp/language/eval_order标记为脱离主题 – Danh
您不确定评估的顺序是什么,或者您不确定它为什么重要? –
@VaughnCato他表示,他知道有溢出。 – Danh