您的位置:首页 > 编程语言 > C语言/C++

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

2014-07-18 17:03 357 查看
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

总结:

在判断含有++ 的表达式的值时,明确该表达式中含++ 的成分的执行顺序,既可以轻松的获取正确的结果
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: