C++中前置++和后置++的区别

     C++中遇到a++和++a的情况时,经常会搞混,而且现在很多的面试或者笔试题目中夺回涉及到这个两者的区别那这两个之间的区别是什么呢?

  首先,a++和++a执行的功能是a的自增,也就是完成a = a+1;单独使用时,这两者的执行结果没有太大的差异,例如:

  P1: int a = 5;                                        P2: int a = 5;

                 a++;                                                       ++a;

            cout<<a<<endl;                                      cout<<a<<endl;

程序P1 、P2 的执行结果都为6;


其次,当这两者放在表达式或者在流中输入输出的时候,两者的执行顺序就不相同了,下面我们通过例子来讲解

  P3: int  a = 5;

            int  b = a++;     //将a的值5赋值给b,之后a自增为6

               cout<<a++<<endl;   //输出a(即6),然后a的值自增

  P4:int  a = 5;

       int  b =++ a;     //a自增为6之后将a的值6赋值给b

              cout<<++a<<endl;   //a的值自增为7,然后输出a


下面介绍较为复杂的例子:

P5 :

int  a = 5;

int   b = (a++)*(a++);//输出结果为25;首先进行乘积运算,然后执行++操作,并且++ 操作执行了两次

//该条语句执行完之后,a的值更新为7

P6:

int  a = 5;

int   b = (++a)*(++a);//输出结果为49;首先执行两次++操作,然后进行乘积运算

//该条语句执行完之后,a的值更新为7


总结:

  在判断含有++ 的表达式的值时,明确该表达式中含++ 的成分的执行顺序,既可以轻松的获取正确的结果

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值