|
|
1
9
问题是,对
等于
现在
|
|
|
2
2
这两行都调用未定义的行为。不能在单个语句中多次修改变量的值(++修改一次,运算符=修改两次)。 所以,你得到不同的值这一事实并不令人惊讶。 |
|
|
3
2
对于指针和迭代器,语法的工作方式完全相同。运算符所隐含的操作将转换为类类型对象(如大多数迭代器)的函数调用。 但是,代码的问题不在于运算符优先级,在这两行中,递增操作和第二次读取语句中其他地方递增的同一变量之间没有顺序。因此,您有未定义的行为,因此他可能看到程序中的任何行为,包括您看到的结果。
您需要以定义序列的方式重新编写此语句。我猜你想要这样的东西。
|
|
|
Julia · 矢量中相加为总和S的值的数量 3 年前 |
|
|
C_Rod · 在模板方法中确定STL容器中项目的数据类型 4 年前 |
|
|
quantumwell · 将空向量放入std::map() 8 年前 |
|
|
OutOfBound · 对未初始化内存使用算法的优点 8 年前 |
|
|
DarthRubik · 在使用列表删除之后,迭代器如何不无效 8 年前 |