考研計算機專業課自增和自減運算符

2.12 自增和自減運算符

C++還提供一元自增運算符(increment operator,++)和一元自減運算符(dcrement operator),見圖2.13。若是變量c遞增1,則能夠用自增運算符++,而不用表達式c=c+1或c+=1。若是將自增和自減運算符放在變量前面,則稱爲前置自增或前置遞減運算符(preincrement或predecrementope~torL若是將自增和自減運算符放在變量後面,則稱爲後置自增或後置自減運算撤postmcrement或postdcrement operator)。前置自增(前置自減)運算符使變量加1(減1),而後在表達式中用變量的新值。後置自增(後置自減)運算符在表達式中用變量的當前值,而後再將變量加1(減1)。ios

 運算符           名稱        示例表達式        說明 
    ++            前置自增    ++a            將a加1,而後在a出現的表達式中使用新值
    ++            後置自增    a++            在a出現的表達式中使用當前值,而後將a加1
    --            前置自減    --b            將b減1,而後在b出現的表達式中使用新值
    --            後置自減    b--            在b出現的表達式中使用當前值,而後將b減1 
圖 2.13 自增和自減運算符

圖2.14的程序演示了++運算符的前置自增與後置自增計算之間的差異,後置自增變量c使其在輸出語句中使用以後再遞增,而前置自增變量c使其在輸出語句中使用以前遞增。編程

// Fig, 2.14:fig02 14.cpp
// Preincrementing and postincrementing
#include <iostream.h>
int main()
{
	int c;
	C = 5;
	cout << C << endl;       // print 5
	cout << C++ << endl;      // print 5 then postincrement
	cout << c << endl << endl; // print
	c = 5;
	cou << c << endl;       // print 5
	cout << ++c << endl;      // preincrement then print 6
	cout << c << endl;
	return  O;    //  successful  terminatiOn
}
輸出結果:
    5
    5
    6

    5

    6
    6
圖2.14 前置自增與後置自增計算之間的差異

程序顯示使用++運算符先後的c值,自減運算符的用法相似。post

編程技巧2.14

一元運算符及其操做數之間不能插入空格。spa

圖2.11的三個賦值語句:code

  passes=passes+1;
  failures=failures+1
  student=student十1;

能夠改寫成更簡練的賦值運算符形式:rem

passes+=1;

failures+=1;

student+=1;

使用前置自增運算符,以下所示:數學

++passes;

++failures;

++student;

或使用後置自增運算符,以下所示:io

passes++

failures++

student++

注意,單獨一條語句中自增或自減變量時,前置自增與後置自增計算之間的的結果同樣,前置自減與後置自減計算之間的結果也相同。只有變量出如今大表達式中時,才能體現前置自增與後置自增計算之間的差異(和前置自減與後置自減計算之間的差異)。ast

目前只用簡單變量名做爲自增和自減的操做數(稍後會介紹,這些運算符也能夠用於左值)。class

覺編程錯誤2.11

要用非簡單變量名錶達式(如++(x+1))做爲自增和自減運算符的操做數是個語法錯誤。

圖2.15顯示了前面所介紹的運算符優先級和結合律,從上到下,優先級依次遞減。第二欄介紹每一級運算符的結合律,注意條件運算符(:)、一元運算符自增(++)、自減(--)、正(+)、負(-)、強制類型轉換以及賦值運算符(=、+=、-;、*=、/=和%=)的結合律爲從右向左。圖1.15中全部其餘運算符的結合律爲從左向右。第三欄是運算符的組名。

     運算符                               結合律                     類型 
    ( )                                                             括號
    ++  --  + - static_cast()              從左向右                 一元
    *  /  %                                從右向左                 乘
    +  -                                   從左向右                 加
    <<  >>                                 從左向右                 插入/讀取
    <    <=    >    >=                     從左向右                 關係
    ==    !=                               從左向右                 相等
    ?:                                     從右向左                 條件
    =    +=    -=    *=    /=    %=        從右向左                 賦值
    ,                                     從左向右                 逗號 
圖 2.15 前面所介紹的運算符優先級和結合律

2016考研數學http://www.2016kaoyan.com/
考研英語真題http://www.kyjxy.com/yingyu/zhenti/
考研專業目錄http://www.kyjxy.com/yuanxiao/zhengce/

相關文章
相關標籤/搜索