我對這個問題感到非常愚蠢。但無法自行找出原因。這是如何評估?
int main()
{
int target;
int buffer =10;
const int source = 15;
target = (buffer+=source) = 20;
cout << target+buffer;
return 0;
}
target = (buffer+=source) = 20;
將成爲target = (25) = 20
。
但是,如果我在我的源文件中給出相同的語句,它會給出l值錯誤。
如何的target+buffer
值被印刷40.
通過調試程序進行調試可以幫助您。 – benjymous
你不是[試圖用C編譯器編譯](http://stackoverflow.com/a/10654019/335858),是嗎? – dasblinkenlight
我很確定這是由於排序而導致的未定義行爲。 – Bathsheba