C++中没有定义的顺序,功能参数进行评估。如果左参数先进行评估,这成为一个调用添加(5,6),它等于11。如果正确的参数先进行评估,这成为一个调用添加(6,6),它等于12!
作为一般规则,这是一个好主意,以避免产生副作用在复合表达式使用运营商。这包括所有的赋值操作符,加上递增和递减运算符。任何导致副作用操作符应放在它自己的声明。
请注意,副作用并不仅限于运算符,表达式和语句。功能还可以有副作用,我们将讨论一节中的全局变量(为什么他们是邪恶的)。
1
2
int x = 5;
int nValue = Add(x, ++x);增加(增加1)和递减(减1)一个变量是很常见的,他们有自己的运营商在C.其实有两个版本的每个操作的前缀和后缀版版。
1566

被折叠的 条评论
为什么被折叠?



