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

這些二進位運算子具有由左至右的順序關聯性。

乘法類運算子接受算術類型的運算元。 模數運算子 ( % ) 具有更嚴格的需求,因為它的運算元必須是整數類型。 (若要取得浮點除法的其餘部分,請使用執行時間函式 fmod .) 標準轉換 中涵蓋的轉換會套用至運算元,而結果為已轉換的類型。

乘法運算子會產生第一個運算元與第二個運算元相乘的結果。

除法運算子會產生第一個運算元除以第二個運算元的結果。

模數運算子會產生下列運算式所提供的餘數,其中 e1 是第一個運算元,而 e2 是第二個運算元: e1 - ( e2 / ) * e2 ,其中兩個運算元都是整數類型。

在除法或模數運算式中除以 0 並未定義,而且會產生執行階段錯誤。 因此,下列運算式會產生未定義的錯誤結果:

i % 0
f / 0.0

如果乘法、除法或模數運算式的兩個運算元有相同的正負號,則結果為正數。 否則,結果為負數。 模數運算結果的正負號是由實作所定義。

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

Microsoft 特定的

在 Microsoft C++ 中,模數運算式的結果一律與第一個運算元的正負號相同。

END Microsoft 特定

如果兩個整數計算的除法不精確,而且只有一個運算元為負數,則結果會是小於除法運算會產生之實際值的最大整數 (範圍內,忽略正負號)。 例如,-11 / 3 的計算值為 -3.66666666666。 該整數除法的結果為 -3。

乘法運算子之間的關聯性是由識別 (e1 / e2) * e2 + e1e2 e2 == e1 % 所指定。

下列程式將示範乘法類運算子。 請注意,的任一運算元 10 / 3 都必須明確轉換成 類型 float ,以避免截斷,如此兩個運算元在除法之前都是類型 float

// expre_Multiplicative_Operators.cpp
// compile with: /EHsc
#include <iostream>
using namespace std;
int main() {
   int x = 3, y = 6, z = 10;
   cout  << "3 * 6 is " << x * y << endl
         << "6 / 3 is " << y / x << endl
         << "10 % 3 is " << z % x << endl
         << "10 / 3 is " << (float) z / x << endl;

具有二元運算子的運算式
C++ 內建運算子、優先順序和順序關聯性
C 乘法運算子