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
总结:
在判断含有++ 的表达式的值时,明确该表达式中含++ 的成分的执行顺序,既可以轻松的获取正确的结果
首先,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
总结:
在判断含有++ 的表达式的值时,明确该表达式中含++ 的成分的执行顺序,既可以轻松的获取正确的结果
相关文章推荐
- c++ 前置++与后置++的区别
- [C++] 前置++和后置++的区别
- c++ 前置++与后置++的区别
- 前置++和后置++的区别
- 对于C++中的前置++和后置++的看法
- (转)前置++和后置++的区别
- [C++] C++的运算符重载(+、-、前置--、后置--,前置++,后置++、==)
- C++再学习系列:前置++与后置++
- 前置++ 和后置++的区别(C++ 为什么不叫++C)
- (1.1.22)前置++和后置++的区别
- C++回顾之前置++、后置++、不等号!及赋值运算符重载
- C++中前置递增运算符和后置递增运算符的区别
- C++前置和后置运算符的区别
- C++回顾之前置++、后置++、不等号!及赋值运算符重载
- (编程语言中)后置++(即i++),分别通过汇编和字节码分析其在vs2012 C++和java中区别
- More Effective C++ 条款6 区别 increment/decrement 操作符的前置(prefix)和后置(postfix)形式
- 前置++和后置++的区别
- C/C++中自增自减的前置和后置区别
- (转)前置++和后置++的区别
- C++ 递增运算符:前置++和后置++的区别