C++:循环增量部分的操作顺序
c++: Operations order in for loop increment part
考虑以下代码段:
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
之前将进行全面评估。
相关文章:
- 标记为 std::memory_order_seq_cst 的单个原子操作是否会在所有位置触发顺序一致性?
- C++和PEMDAS的优先顺序/操作?
- 内存排序或读取-修改-写入操作,仅(读/写)内存顺序
- 如果 RMW 操作没有任何变化,是否可以针对所有内存顺序对其进行优化
- MPI 归约操作中的求和顺序
- 操作顺序以最大限度地提高精度
- 在进行顺序计算时保持操作顺序
- 编译器是否会简化按顺序执行多次的操作
- 在C++中,当表达式涉及对象时,将表达式赋值到对象中时,是否有定义的操作顺序?
- C 操作顺序和模量
- C 的操作顺序用于初始化数组大小
- 访问类成员的C++操作顺序
- C++ 输入流:Solaris 与 Linux 中的操作顺序
- C++:循环增量部分的操作顺序
- 循环与操作顺序
- 这里的具体操作顺序是什么?
- if 表达式中的操作顺序是否更改
- 使用Spirit的语义操作顺序(参考Phoenix)
- 操作顺序不正确?(C++)
- C预处理器和操作顺序