添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

乘法類運算子會執行乘法 ( * )、除法 ( / ) 和餘數 ( % ) 運算。

multiplicative-expression : cast-expression multiplicative-expression * cast-expression multiplicative-expression / cast-expression multiplicative-expression % cast-expression

餘數運算子 ( % ) 的運算元必須為整數。 乘法 ( * ) 和除法 ( / ) 運算子可以接受整數類資料類型或浮點數類型運算元,運算元的類型可以不同。

乘法類運算子會對運算元執行一般算術轉換。 結果的類型是轉換後的運算元類型。

由於乘法類運算子所執行的轉換不提供溢位或反向溢位條件,因此,如果乘法類運算的結果無法以轉換後的運算元類型表示,則資訊可能會遺失。

下表說明 C 乘法類運算子:

除法運算子會使第一個運算元除以第二個運算元。 如果兩個整數運算元相除且結果不是整數,則會根據下列規則截斷:

- 根據 ANSI C 標準,除以 0 的結果是未定義。 Microsoft C 編譯器會在編譯時期或執行階段產生錯誤。

- 如果兩個運算元都是正數或不帶正負號,結果會截斷小數點以下的小數部分。

- 如果任一個運算元為負數,運算的結果為小於或等於代數商的最大整數,還是大於或等於代數商的最小整數,會由實作所定義。 (請參閱 Microsoft 特定章節)。 第一個運算元除以第二個時,餘數運算子的結果就是餘數。 當除法不精確時,結果會以下列規則決定:

- 如果右運算元為零,則結果會是未定義。

- 如果兩個運算元都是正數或不帶正負號,則結果為正數。

- 如果任一個運算元為負數且結果不精確,則結果為實作所定義。 (請參閱 Microsoft 特定章節)。

Microsoft 專有

在任一個運算元為負數的除法中,攔截的方向為小數點以下的小數部分。

如果具有餘數運算子的除法中任一項運算為負數,則結果的正負號會與被除數 (運算式中的第一個運算元) 相同。

下面顯示的宣告用於下列範例:

int i = 10, j = 3, n;
double x = 2.0, y;

這個陳述式使用乘法運算子:

y = x * i;

在這個案例中,x 會乘以 i 並得出值 20.0。 結果為 double 類型。

n = i / j;

在這個範例中,10 是除以 3。 結果會截斷小數點以下的小數部分,產生整數值 3。

n = i % j;

當 10 除以 3 時,這個陳述式會指派整數餘數 1 給 n

Microsoft 特定的

餘數的正負號與被除數的正負號相同。 例如:

50 % -6 = 2
-50 % 6 = -2

在每個案例中,502 具有相同的正負號。

END Microsoft 特定的

乘法類運算子和模數運算子