已完成的评价功能

在第三行,X和Y是递增/递减之前,他们的评价,因此他们的新值打印的法院。在第五行,一个原始值的临时副本(X = 6,Y = 4)发送至cout,然后原来的X和Y的递增。这就是为什么从后缀运算符的变化不出现,直到下一行。

副作用

一个副作用是由于一个运算符,表达式,语句,或函数后仍然算子,表达,陈述,或已完成的评价功能。

副作用可能是有用的:

1
2
int x = 5;
int nValue = Add(x, ++x);

C++中没有定义的顺序,功能参数进行评估。如果左参数先进行评估,这成为一个调用添加(5,6),它等于11。如果正确的参数先进行评估,这成为一个调用添加(6,6),它等于12!

作为一般规则,这是一个好主意,以避免产生副作用在复合表达式使用运营商。这包括所有的赋值操作符,加上递增和递减运算符。任何导致副作用操作符应放在它自己的声明。

请注意,副作用并不仅限于运算符,表达式和语句。功能还可以有副作用,我们将讨论一节中的全局变量(为什么他们是邪恶的)。

在票面价值,这看起来很奇怪……我会在他们为。

1。这一评估17,像彼得P说。没有方法可以评价15,因为它将成为:(金额= 12 +5)。

2。再次,什么是错的。这应该是(我认为),总和= 12 +(4)=8。

3。这应该是正确的,为后缀的++将增量CTR后的表达式被求值(我认为)。

4。我从来没有见过一个像这样的–后缀,我认为更应该编译。

用你的编译器来编译每个语句,并看看会发生什么。我刚刚写完我的意见,我没有编译代码。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值