對於剛接觸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即可.因此,前綴的執行效率要高一點的.