2016-03-04 92 views
4

考慮下面的代碼段:C++:操作命令在for循環增量部分

int totalLength = 0; 
int partLength = 0; 
for(; totalLength < SOME_CONST; totalLength += partLength, partLength = 0) 
{ 
    //partLength may be increased here 
} 

在這個特定的情況下,我可以假設partLength將被設置爲0後,它將被添加到totalLength(這樣如果partLength在循環體中增加,我不會在循環結束時將totalLength加0)?我閱讀了C++程序等,但沒有找到明確的答案。

回答

5

是。逗號運算符的左側在右側之前排序。 totalLength += partLength將在執行partLength = 0之前完全評估。

+0

那麼它不是實現相關的?我很害怕,所以這個問題。 – PookyFan

+1

@PookyFan不是。你可以閱讀更多關於它[這裏](http://en.cppreference.com/w/cpp/language/operator_other#Built-in_comma_o​​perator)。 –