運算子 | 功能 | 範例 |
---|---|---|
= | 指派 | a = b |
+= | 相加同時指派 | a += b |
-= | 相減同時指派 | a -= b |
*= | 相減同時指派 | a *= b |
/= | 相除同時指派 | a /= b |
%= | 取餘數同時指派 | a %= b |
&= | 位元且同時指派 | a &= b |
|= | 位元或同時指派 | a |= b |
^= | 位元互斥或同時指派 | a ^= b |
<<= | 位元向左位移同時指派 | a <<= b |
>>= | 位元向右位移同時指派 | a >>= b |
可合用指派運算子的有算術運算子及位元運算子,以下程式示範算術運算子的部份
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | #include <stdio.h> int main( void ) { int a = 4; int b = 3; printf ( "%d\n" , a += b); printf ( "%d\n" , a -= b); printf ( "%d\n" , a *= b); printf ( "%d\n" , a /= b); printf ( "%d\n" , a %= b); return 0; } /* 《程式語言教學誌》的範例程式 檔名:assign1.c 功能:示範算術運算子與指派運算子的合用 作者:張凱慶 時間:西元2010年4月 */ |
編譯後執行,如下

第 8 行
8 | printf ( "%d\n" , a += b); |
變數 a 加上變數 b 的值後,結果變數 a 的值為 7 。然後第 9 行
9 | printf ( "%d\n" , a -= b); |
變數 a 減掉變數 b 的值後,結果變數 a 的值為 4 。餘下可類推。
以下程式示範位元運算子的部份
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | #include <stdio.h> int main( void ) { int a = 0x101; int b = 0x10; printf ( "%x\n" , a <<= b); printf ( "%x\n" , a >>= b); printf ( "%x\n" , a &= b); printf ( "%x\n" , a |= b); printf ( "%x\n" , a ^= b); return 0; } /* 《程式語言教學誌》的範例程式 檔名:assign2.c 功能:示範位元運算子與指派運算子的合用 作者:張凱慶 時間:西元2010年4月 */ |
編譯後執行,如下

同樣的,變數 a 先左移 16 個位元,然後再右移 16 個位元回來,接著與變數 b 做逐位元的且運算,餘下可類推。
1 則留言:
表格的第4行應該是相乘同時指派吧
張貼留言