C++:循环增量部分的操作顺序

c++: Operations order in for loop increment part

本文关键字:操作 顺序 量部 循环 C++      更新时间:2023-10-16

考虑以下代码段:

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++ 序列之类的信息,但没有找到任何明确的答案。

是的。逗号运算符的左侧先于右侧排序。 totalLength += partLength在执行partLength = 0之前将进行全面评估。