C++:for循环中的自增操作顺序

4

请考虑以下代码片段:

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

在这种情况下,我可以假设partLength会在被添加到totalLength之后设置为0(因此,如果在循环体中增加partLength,我不会在循环结束时将0添加到totalLength)。我了解了C++序列等相关知识,但没有找到清晰的答案。
1个回答

5
是的。逗号运算符左边的部分会在右边之前被顺序执行。totalLength += partLength将在执行partLength = 0之前完全计算。

那么它不依赖于实现吗?我担心它是,所以问了这个问题。 - PookyFan
1
@PookyFan 不是这样的。你也可以在这里了解更多相关信息。 - Weak to Enuma Elish

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接