您当前的位置:首页 > 计算机 > 编程开发 > VC/VC++

C++自增与自减(++|--)讲解

时间:01-10来源:作者:点击数:

我们发现,在for语句中,会经常用到i=i+1之类的语句。于是为了方便表示,C++中有了增量表达式和减量表达式。增量的操作符为++,减量的操作符为--。增减量运算的优先级和逻辑非运算处在同一级。所以我们现在可以记作“不曾(增)算关羽活”,但是要注意,逻辑非和增减量操作符应该依次从左向右计算,而没有谁优先的说法(因为它们同级)。

在实际使用中,我们会遇到两种增(减)量操作。一种是++i,称为前增量操作,另一种是i++,称为后增量操作。那么这两种操作有什么不同呢?应该如何记忆呢?

我们刚才说了,增量和减量是表达式,既然是表达式就应该有一个结果。而前增量和后增量的结果是不同的。++i是先去做i=i+1,然后再把i作为表达式的结果;而i++是先把i作为表达式的结果,然后再去做i=i+1。说到这里,可能有些读者要糊涂了,要是i=1,执行完了i++和++i的结果不都是i=2么?怎么叫结果不一样呢?那么我们来看段程序:(程序5.1.2)

#include "iostream.h" 
int main()
{
   int a,i=1;
   a=i++;
   int b,j=1;
   b=++j;
   cout <<a <<' ' <<b <<' ' <<i <<' ' <<j <<endl;
   return 0;
}

运行结果:1 2 2 2

我们发现,当i和j同时为1分别执行前后自增以后,i和j的值都由1变成了2。但是a和b的值却是不同的。不同的原因就是在于前面讲的赋值与做加法的顺序不同。a=i++是先把没有做过加法的i值赋给了a,所以a的值为1;而b=++i是先做加法,即i=2了以后,再把i的值赋给b,所以此时b的值为2。我们记忆的时候可以按照增量操作符和变量的位置来记,加号在变量前面的称为“先加后赋”,即先做加法在赋值;加号在变量后面的称为“先赋后加”,即先赋值后做加法。由于增减量操作符有赋值操作,所以操作的对象(又称操作数,Operand)必须是左值。比如3++就是不允许的。

试试看:

1、修改程序5.1.1,使之输出以下结果:
①1+2+3……+50 ②1*2*3……*20 ③1/1+1/2+1/3……1/50

2、分别使用增量操作和减量操作修改程序5.1.1,使其运行结果不变。并考察使用前增量和使用后增量是否影响循环程序的运行结果。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门