C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

Cにおける演算子の優先順位と結合性


演算子の優先順位は、式内の用語のグループ化を決定し、式の評価方法を決定します。特定の演算子は他の演算子よりも優先されます。たとえば、乗算演算子は加算演算子よりも優先順位が高くなります。

たとえば、x =7 + 3 * 2;ここでは、演算子*の優先順位が+よりも高いため、xには20ではなく13が割り当てられます。したがって、最初に3 * 2が乗算され、次に7に加算されます。

ここでは、優先順位が最も高い演算子が表の上部に表示され、優先順位が最も低い演算子が下部に表示されます。式内では、優先順位の高い演算子が最初に評価されます。

オペレーター 結合性
カテゴリ
接尾辞 ()[]->。 ++ --- 左から右
単項 +-! 〜++ ---(type)*&sizeof 右から左
乗法 * /% 左から右
添加剤 +- 左から右
シフト <<>> 左から右
リレーショナル <<=>> = 左から右
平等 ==!= 左から右
ビットごとのAND 左から右
ビット単位のXOR ^ 左から右
ビット単位または | 左から右
論理積 && 左から右
論理OR || 左から右
条件付き ?: 右から左
割り当て =+ =-=* =/ =%=>> =<<=&=^ =| = 右から左
カンマ 左から右

サンプルコード

#include <stdio.h>
main() {
   int a = 20;
   int b = 10;
   int c = 15;
   int d = 5;
   int e;
   e = (a + b) * c / d; // ( 30 * 15 ) / 5
   printf("Value of (a + b) * c / d is : %d\n", e );
   e = ((a + b) * c) / d; // (30 * 15 ) / 5
   printf("Value of ((a + b) * c) / d is : %d\n" , e );
   e = (a + b) * (c / d); // (30) * (15/5)
   printf("Value of (a + b) * (c / d) is : %d\n", e );
   e = a + (b * c) / d; // 20 + (150/5)
   printf("Value of a + (b * c) / d is : %d\n" , e );
   return 0;
}

出力

Value of (a + b) * c / d is : 90
Value of ((a + b) * c) / d is : 90
Value of (a + b) * (c / d) is : 90
Value of a + (b * c) / d is : 50

  1. JavaScriptプログラムの!=演算子と!==演算子の違い

    !=比較演算子 !=演算子は、型チェックを行わずに2つのオブジェクトの不等式をチェックします。 2つのオペランドのデータ型を1つに変換してから、それらの値を比較します。たとえば、1!=1はfalseになります。 !==比較演算子 !==演算子は、型チェックを使用して2つのオブジェクトの不等式をチェックします。データ型を変換せず、型付きチェックを行います。たとえば、1!==1はtrueになります。 次の例は、「!=」と「!==」演算子の使用法を示しています。 例 <!DOCTYPE html> <html> <head>    <

  2. JavaScriptのRESTおよびSpread演算子

    残りの演算子(…)を使用すると、任意の数の引数を使用して関数を呼び出し、それらの余分な引数に配列としてアクセスできます。 rest演算子を使用すると、配列またはオブジェクトを破棄することもできます。 スプレッド演算子(…)を使用すると、反復可能な配列のようなものを個々の要素に展開できます。 例 以下は、JavaScriptのRESTおよびSpread演算子を示すコードです- <!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8" />