Subexpressions评价顺序的不可预测性

时间:2013-08-10 18:42:34

标签: c++

请告诉我这行将在c ++中打印

int a = 5;
cout<<++a <<" " <<++a <<" " <<++a <<endl;

在“Schaum用c ++编程”一书中给出了它将从右到左进行输出将是 8 7 6

但我得到了输出 8 8 8 请解释一下,在书写完之后,C ++语言是否有任何修改?

1 个答案:

答案 0 :(得分:3)

这是未定义的行为;你可以得到任何结果,你的程序可以 崩溃,或向你的老板发送侮辱信。任何以此为例,并为其指定一些特定输出的书都应该扔进垃圾桶;作者不懂C ++;