計算機概論:C/C++程式設計
|
第2章、C++程式基本元素 |
|
|
授課教師:陳慶瀚 WWW : http://www.miat.ee.isu.edu.tw/cpp E-mail : pierre@isu.edu.tw |
|
2.7 遞增(++)和遞減(--)運算子 在高階語言中,遞增(++)和遞減(--)運算子是C/C++語言所獨有的一組運算子,它提供一種精簡和高效率的方式來執行加1或減1的運算。其用法如下: lvalue++; 這裡lvalue是一個記憶區塊,譬如說一個變數的記憶位置。要把一個值指定給一個記憶體,可以使用Assignment運算子=,如 x = 10; 是把10存入變數x所指的記憶體中。如果我們寫 x = x+1; 意味著把1與x所指的記憶體內容相加,其結果再指定給x所指的記憶體。在CPU內,這個動作可能要花2個時脈的執行時間,但如果我們使用遞增(++)運算子,上式改成 x++; 執行的結果完全一樣,但只要一個時脈的執行時間,效率就增加了。 遞減運算子--的概念與遞增運算子++相同,只是執行的是減一的功能,因此 x=x-1; 與 x--; 功能是結果相同,但是後者的效率大於前者。 不管是遞減運算子--或遞增運算子++,它們都有前置(prefix)和後置(postfix)兩種模式如下: ++lvalue; //前置模式 lvalue++; //後置模式 使用前置模式,lvalue會立刻被加1,然後才被使用;如果使用後置模式,lvalue會被使用後,然後才加1。下列範例程式展示這兩種模式的差異性。 /*----------------------------------------------------*/ // 範例程式2-7 // 遞增運算子的兩種使用模式 // 陳慶瀚,2001 /*----------------------------------------------------*/ void main() { int x,y; x = 5; /*--------- 使用遞增運算子的後置模式------------*/ y = x++; // x 值首先被指定給y, 然後x才加1 // x 值為 6, y值 5 cout<<"x = "<<x<<", y = "<<y<<endl; /*--------- 使用遞增運算子的前置模式------------*/ x = 5; y = ++x; // x 值首先被加1, 然後x值才指定給y // x 值為 6, y值 6 cout<<"x = "<<x<<", y = "<<y<<endl; }
課堂練習: 使用遞增運算子:請判斷此一程式輸出 #include <iostream.h> void main() { int x = 10; int y; cout << " x值為 " << x++ << '.' << endl; cout << " x值為 " << ++x << '.' << endl; y = x++; cout << " x值為 " << x << '.' << endl; cout << " y值為 " << y << '.' << endl; x = y--; cout << " x值為 " << x << '.' << endl; cout << " y值為 " << y << '.' << endl; } |
||
計算機概論:C/C++程式設計 義守大學電機系 陳慶瀚 2001.10.02 |