運算子 | 功能 | 範例 |
---|---|---|
++ | 前遞增 | ++a |
++ | 後遞增 | a++ |
-- | 前遞減 | --a |
-- | 後遞減 | a-- |
遞增及遞減有前後之別,所謂的前遞增係指在複合的運算式裡會先遞增,然後以遞增後的值帶入複合運算式中進行計算,後遞增則相反,也就是說複合運算式計算完,施用後遞增的運算元才會進行遞增。前、後遞減跟前、後遞增的情況雷同。
基本資料型態都可以做遞增或遞減運算,以下為整數型態做遞增運算的例子
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #include <stdio.h> int main( void ) { int a = 1; printf ( "%d\n" , a++); printf ( "%d\n" , ++a); printf ( "%d\n" , a++); printf ( "%d\n" , a); return 0; } /* 《程式語言教學誌》的範例程式 檔名:increint.c 功能:示範整數的遞增運算 作者:張凱慶 時間:西元2010年4月 */ |
編譯後執行,結果如下

以下為整數型態做遞減運算的例子
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #include <stdio.h> int main( void ) { int a = 1; printf ( "%d\n" , a--); printf ( "%d\n" , --a); printf ( "%d\n" , a--); printf ( "%d\n" , a); return 0; } /* 《程式語言教學誌》的範例程式 檔名:decreint.c 功能:示範整數的遞減運算 作者:張凱慶 時間:西元2010年4月 */ |
編譯後執行,結果如下

以下為浮點數型態做遞增運算的例子
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #include <stdio.h> int main( void ) { float a = 1.2; printf ( "%f\n" , a++); printf ( "%f\n" , ++a); printf ( "%f\n" , a++); printf ( "%f\n" , a); return 0; } /* 《程式語言教學誌》的範例程式 檔名:increfloat.c 功能:示範浮點數的遞增運算 作者:張凱慶 時間:西元2010年4月 */ |
編譯後執行,結果如下

以下為浮點數型態做遞減運算的例子
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #include <stdio.h> int main( void ) { float a = 1.2; printf ( "%f\n" , a--); printf ( "%f\n" , --a); printf ( "%f\n" , a--); printf ( "%f\n" , a); return 0; } /* 《程式語言教學誌》的範例程式 檔名:decrefloat.c 功能:示範浮點數的遞減運算 作者:張凱慶 時間:西元2010年4月 */ |
編譯後執行,結果如下

字元型態也可以做遞增及遞減運算,例如我們可依此特性印出 26 個英文小寫字母
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | #include <stdio.h> int main( void ) { char var = 'a' ; while (var <= 'z' ) { printf ( "%c " , var++); } printf ( "\n" ); var -= 1; while (var >= 'a' ) { printf ( "%c " , var--); } printf ( "\n" ); return 0; } /* 《程式語言教學誌》的範例程式 檔名:indecrechar.c 功能:示範字元的遞增遞減運算 作者:張凱慶 時間:西元2010年4月 */ |
編譯後執行,結果如下

沒有留言:
張貼留言