ホーム プログラミング言語 C Shape C# 演算子の優先順位

C# 演算子の優先順位

 
これまでの研究により、演算子にはさまざまなタイプがあることがわかっていますが、これらの異なるタイプの演算子が同じ式内に出現する場合、演算の合理性を確保するためには、演算子の優先順位に従って演算を実行する必要があります。結果の正確さ、正しさと一意性。演算子の優先順位によって、式の各部分で演算が実行される順序が決まります。

 

C# における演算子の優先順位については、次の表で詳しく説明します。

優先順位 オペレーター 名前または意味 使用形態 綴じ方向 説明する
1 [] 配列の添字 配列名[整数式] 左から右へ  
() 圆括号 (式)/関数名(仮パラメータリスト)  
. 成员选择(对象) オブジェクト.メンバー名  
-> 成员选择(指针) オブジェクトポインタ -> メンバー名  
2 マイナス演算子 -表現 右から左に 単項演算子
(type) 强制类型转换 (データの種類) 式  
++ 自增运算符 ++変数名/変数名++ 単項演算子
自减运算符 –変数名/変数名– 単項演算子
* 取值运算符 *ポインタ式 単項演算子
& 取地址运算符 & 左辺値式 単項演算子
! 逻辑非运算符 !表現 単項演算子
~ 按位取反运算符 ~式 単項演算子
sizeof 长度运算符 式のサイズ/(タイプ)のサイズ  
3 / 削除 式/式 左から右へ 二項演算子
* 式*式 二項演算子
% 余数(取模) integer_expression% integer_expression 二項演算子
4 + 追加 式 + 式 左から右へ 二項演算子
式 – 式 二項演算子
5 << 左に移動 式 << 式 左から右へ 二項演算子
>> 右移 式 >> 式 二項演算子
6 > 以上 式>式 左から右へ 二項演算子
>= 大于等于 式 >= 式 二項演算子
< 小于 式<式 二項演算子
<= 小于等于 式 <= 式 二項演算子
7 == 同等 式 == 式 左から右へ 二項演算子
!= 不等于 式 != 式 二項演算子
8 & ビットごとの AND 整数式と整数式 左から右へ 二項演算子
9 ^ ビット単位の XOR 整数式^整数式 左から右へ 二項演算子
10 | ビットごとまたは 整数式 | 整数式 左から右へ 二項演算子
11 && ロジックと 式 && 式 左から右へ 二項演算子
12 || 論理的または 式 || 式 左から右へ 二項演算子
13 ?: 条件演算子 式 1?式 2:式 3 右から左に 三項演算子
14 = 代入演算子 変数 = 式 右から左に  
/= 除后赋值 変数/=式  
*= 乘后赋值 変数 *= 式  
%= 取模后赋值 変数 %=式  
+= 加后赋值 変数 += 式  
-= 减后赋值 変数 -= 式  
<<= 左移后赋值 変数 <<= 式  
>>= 右移后赋值 変数 >>= 式  
&= 按位与后赋值 変数 &= 式  
^= 按位异或后赋值 変数 ^= 式  
|= 按位或后赋值 変数 |= 式  
15 , カンマ演算子 表現、表現、… 左から右へ 左から右への順次操作

【例】以下は演算子の優先順位を示す例です。

 using System;

namespace it-kiso.com
{
    class Demo
    {
        static void Main(string[] args){
            int a = 12;
            int b = 34;
            int c = 56;
            int d = 7;
            int e;

            e = (a + b) * c / d;
            Console.WriteLine("(a + b) * c / d の値は {0}", e);
            e = ((a + b) * c) / d;
            Console.WriteLine("((a + b) * c) / d の値は {0}", e);
            e = (a + b) * (c / d);
            Console.WriteLine("(a + b) * (c / d) の値は {0}", e);
            e = a + (b * c) / d;
            Console.WriteLine("a + (b * c) / d の値は {0}", e);
            Console.ReadLine();
        }
    }
} 

操作の結果は次のようになります。

(a + b) * c / d の値は 368
((a + b) * c) / d の値は 368
(a + b) * (c / d) の値は 368
a + (b * c) / d の値は 284

「 C# 演算子の優先順位」についてわかりやすく解説!絶対に観るべきベスト2動画

C#プログラミング入門 第5回 (4) 演算子の優先順位
【Unity C# 基礎講座】比較演算子