+=-=*=/=%= 運算符號

test-ipow.c 中,我們看到

ans = ans * base;
這個指令。其實它可以縮寫成 ans *= base。 相對應,還有 +=-=/=%= 這些符號, 分別的意義是
a = (a) + (b);   等於   a += b;
a = (a) - (b);   等於   a -= b;
a = (a) / (b);   等於   a /= b; a = (a) % (b);   等於   a %= b;
由於 -/% 是不可交換的, 所以要特別注意它們的定義。 +=-=*=/=%= 的優先度全部是 1, 右傾,所以與 = 完全相同。例如
a += b = 3;
等於先做 b=3; 然後做 a = a+b;

注意我們加的括號。例如

    a *= b - 3;
的意義是 a = a * (b-3); 而不是 a = a*b - 3;

習題

  1. 如果 int a=2, b=3, c=5; 請問 a *= b = c *= 3; 使得 a b c 三個變數的值各是多少?

[ 前一節 ]‧[ 後一節 ]‧[ 回目錄 ]



注意:此處所有文件均為原著,個別的版權宣告日後會一一公布, 整體版面設計亦尚未完成。但仍請勿抄襲文字與圖片,以免觸犯著作權法。

Created: Mar 31, 2000
Last Revised: Mar 31, 2000
© Copyright 2000 Wei-Chang Shann 單維彰

shann@math.ncu.edu.tw