關於 C/C++ ++a a++ --a a-- 自增自減

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章