对于刚接触C/C++来说,++a a++ 和 --a a--或许会有些迷糊.
++(递增运算符) --(递减运算符) 各有两种出现形式 根据运算符的位置分为前缀和后缀形式
a++ b-- 属于后缀形式 ++a --b 属于前缀形式
先程序根据结果我们再去分析:
#include <iostream>
using namespace std;
const int ArSize = 16;
int main()
{
int a =10;
int b= 10;
cout << "++++++++++++++++Begin++++++++++++++++"<<endl;
cout<<"a = "<<a<<endl;
cout <<"a++ = "<<a++<<endl;
cout << "a = " <<a<<endl;
cout <<"***********a++和++a的分割线****************"<<endl;
cout <<"++a = "<<++a<<endl;
cout <<"a = "<< a <<endl;
cout << "++++++++++++++++++End++++++++++++++++"<<endl;
cout << "----------------Begin----------------"<<endl;
cout << "b = " << b << endl;
cout << "b-- = " << b-- << endl;
cout << "b = " << b << endl;
cout << "***********b--和--b的分割线****************"<< endl;
cout << "--b = " << --b << endl;
cout << "b = " << b << endl;
cout << "----------------End------------------"<<endl;
return 0;
}
运行结果:
++++++++++++++++Begin++++++++++++++++
a = 10
a++ = 10
a = 11
***********a++和++a的分割线****************
++a = 12
a = 12
++++++++++++++++++End++++++++++++++++
----------------Begin----------------
b = 10
b-- = 10
b = 9
***********b--和--b的分割线****************
--b = 8
b = 8
----------------End------------------
由运行结果可知:
对于 a++ 和 b-- 它的执行过程是先执行 cout<< 语句,再去自加1 的.
对于 ++a 和 --b 它的执行过程是先去执行 自加 再去 执行cout<< 语句的.
一般而言 在for循环和while循环中,这两种形式没有区别,对于指针这一块,需要小心了.
注意:在形式上两者区别不大,但在执行速度上有细微的差别,对于后缀需要做到工作是,先复制一个副本,将其加1,然后将复制后的副本返回,对于前缀,就没有这么麻烦,直接加1即可.因此,前缀的执行效率要高一点的.

1053

被折叠的 条评论
为什么被折叠?



