在参数列表中重用变量时的前缀增量变量

时间:2014-10-08 02:28:22

标签: c++

我今天面临着一个特殊的问题..

当我在函数参数列表中的变量上使用前缀增量,然后在参数列表中再次重用该变量时会发生什么?在将变量作为第二个参数的一部分进行求值之前,是否会发生前缀增量?

(我想我不妨问一下,如果有人使用后缀增量会怎么样?)

Example(++marker1, marker2 - marker1);

1 个答案:

答案 0 :(得分:3)

函数参数的评估是无序的,因此修改一个变量并在另一个变量中使用其值会产生未定义的行为。无论您使用预增量还是后增量都是如此。

通常,避免将变量修改为复杂表达式的一部分;特别是如果它的值在表达式的其他地方使用,因为它往往会给出一个未指定的值或(在某些情况下)未定义的行为。