Cookie の使用について.本サイトでは、基本機能の提供に必要な必須 Cookie を使用しています。さらに、同意いただいた場合に限り、アクセス解析 Cookie を利用して利用状況を把握し、サービス改善に役立てます。詳しくは .
このツールは使いやすかったですか?
フィードバックは改善に役立ちます
在线查看C语言运算符优先级与结合性,助你理解表达式求值。
収録した構文の参考表で、コンパイラーや例の実行検証ではありません。番号はサイト内のグループです。使用する言語の版、型、評価規則は仕様で確認してください。例のコードと文字列は原文を保ちます。 出典
a++後置演算子左結合更新前の値を式で使い、その後1増やします。
i++a--後置演算子左結合更新前の値を式で使い、その後1減らします。
i--a()後置演算子左結合関数または呼び出し可能な値を、引数を指定して呼び出します。
printf("hi")a[]後置演算子左結合添字またはキーで要素にアクセスします。
arr[0].後置演算子左結合フィールド、属性、メソッドなどを名前で参照します。
obj.name->後置演算子左結合ポインターが指すオブジェクトのメンバーにアクセスします。
p->next(type){list}後置演算子左結合Cで型名と初期化リストからオブジェクトを作ります。
(int[]){1,2,3}++a単項演算子右結合先に1増やし、更新した値を式で使います。
++i--a単項演算子右結合先に1減らし、更新した値を式で使います。
--i+a単項演算子右結合単項のプラス演算です。型変換や型の昇格は言語によって異なります。
+x-a単項演算子右結合値の符号を反転します。
-x!単項演算子右結合真偽の判定を反転します。
!ready~単項演算子右結合各ビットを反転します。整数の幅や対応する型は言語に依存します。
~mask(type)単項演算子右結合式の値を指定した型へ変換します。対応する変換と精度は言語・型で異なります。
(int)3.14*a単項演算子右結合ポインターの参照先の値にアクセスします。
*p&a単項演算子右結合アドレスを取得します。アドレスを持てる対象の制約は言語の規則に従います。
&valuesizeof単項演算子右結合型または式のサイズをバイト単位で求めます。文字列の長さではありません。
sizeof(int)_Alignof単項演算子右結合型のアラインメント要件を取得します。
_Alignof(double)*乗除算・剰余左結合左右の値を掛け合わせます。
a * b/乗除算・剰余左結合左の値を右の値で割ります。整数の丸め方は言語と型に依存します。
10 / 3%乗除算・剰余左結合除算の余りです。負数の結果や対応する型は言語の規則を確認してください。
10 % 3+加減算左結合値を加算します。ポインターや演算子のオーバーロードは言語の規則に従います。
a + b-加減算左結合右の値を左の値から引きます。
a - b<<シフト演算左結合ビットを指定数だけ左に移動します。負の移動量や幅を超える移動の規則を確認してください。
1 << 3>>シフト演算左結合ビットを右に移動します。符号拡張などの動作は言語と型に依存します。
8 >> 2<関係演算左結合左辺が右辺より小さいか比較します。
a < b<=関係演算左結合左辺が右辺以下か比較します。
a <= b>関係演算左結合左辺が右辺より大きいか比較します。
a > b>=関係演算左結合左辺が右辺以上か比較します。
a >= b==等価比較左結合言語の等価性の規則に従って左右の値を比較します。
a == b!=等価比較左結合左右が等価でないか比較します。
a != b&ビット演算左結合対応するビットが両方1の場合に1となります。
a & b^ビット演算左結合対応するビットが異なる場合に1となります。
a ^ b|ビット演算左結合対応するビットの少なくとも一方が1の場合に1となります。
a | b&&論理演算左結合左辺が偽と判定される場合は右辺を評価しません。戻り値の型は言語に依存します。
a && b||論理演算左結合左辺が真と判定される場合は右辺を評価しません。戻り値の型は言語に依存します。
a || b?:条件演算右結合条件に応じて二つの式の一方を選びます。
x > 0 ? 1 : -1=代入演算右結合右辺の値を左辺に代入します。式として使えるかは言語に依存します。
x = 10+=代入演算右結合加算した結果を左辺に書き戻します。
x += 1-=代入演算右結合減算した結果を左辺に書き戻します。
x -= 1*=代入演算右結合乗算した結果を左辺に書き戻します。
x *= 2/=代入演算右結合除算した結果を左辺に書き戻します。
x /= 2%=代入演算右結合剰余の結果を左辺に書き戻します。
x %= 3<<=代入演算右結合左シフトの結果を左辺に書き戻します。
x <<= 2>>=代入演算右結合右シフトの結果を左辺に書き戻します。
x >>= 2&=代入演算右結合ビットANDの結果を左辺に書き戻します。
x &= 0xFF^=代入演算右結合ビットXORの結果を左辺に書き戻します。
x ^= mask|=代入演算右結合ビットORの結果を左辺に書き戻します。
x |= 0x01,カンマ演算左結合式を順に評価します。引数や初期化子を区切るコンマとは区別します。
for (i=0,j=9; i<j; ++i,--j)概要
解決できる課題、処理の仕組み、データの範囲を確認できます。
記号だけでは区別しにくい演算子を、名称・説明・例と一緒に確認するための検索リファレンスです。キーワード欄では演算子の記号、日本語名、説明文、コード例、優先度番号を検索できます。カテゴリと結合性も絞り込めるため、たとえばビット演算や右結合の項目だけを見たいときに使えます。結果には記号、カテゴリ、結合性、説明、例が表示され、記号や例を個別にコピーできます。
表示される優先度番号は、この一覧内で項目をグループ分けするための目安です。小さい番号ほど一覧上の優先度が高く、同じ番号の項目は同じグループです。C言語の全規格・全構文を網羅した公式表や、入力した式を解析して正誤を判定する機能を意味しません。
優先度は、異なる演算子が式に並んだときに、構文上どの部分が先にまとまるかを理解する手掛かりです。たとえば a + b * c は、乗算を先にまとめる形、つまり a + (b * c) と読めます。同じ優先度の演算子が続く場合は結合性が構文上のまとまりを示します。左結合の減算なら a - b - c は (a - b) - c、右結合の代入なら a = b = c は a = (b = c) という形です。括弧を明示すれば、読み手に意図を伝えやすくなります。
構文上のまとまりと、実行時にどのオペランドが先に評価されるかは別の話です。WG14のC11草案でも式の文法と評価に関する規則は別に定められています。優先度や結合性だけから、関数呼び出しや副作用を伴う式の実行順を推測しないようにしましょう。
使い方
手順に沿って操作し、例を使って入力と結果を確認します。
記号、演算子名、説明の語句、コード例、一覧の優先度番号のいずれかを入力します。たとえば <<、「短絡」、14 のように探せます。
乗除算、シフト、比較、ビット演算、論理演算、代入などから対象を指定します。記号が複数の用途に使われる場合は、カテゴリを加えると候補を見分けやすくなります。
必要に応じて左結合・右結合・結合性なしで絞り込みます。結果の番号はこの一覧内のグループとして読み、記号や説明、例も合わせて確認してください。
項目の例または記号をコピーし、手元の式に括弧を書き加えて構文上のまとまりを確認します。検索条件を複数指定して結果が見つからない場合は、キーワードかフィルターを一つずつ解除します。
活用例
仕事や日常の流れの中での活用方法を紹介します。
比較演算子とビット演算子が同じ式に現れたら、それぞれの項目を検索し、説明と例を見ながら括弧でグループを書き分けます。意図が一目で分かりにくい箇所は、コードにも括弧を加える判断に役立ちます。
代入や条件演算子の項目を結合性で絞り、短い式のまとまりを括弧で表して確認します。用語の意味と具体例を往復して復習できます。
読みにくい式の記号を一つずつ調べ、カテゴリ・説明・例を共有して、チーム内で意図した式の構造を確認します。実行結果の検証が必要な場合は、対象の処理系でも別途確認します。
Q&A
よくある疑問や迷いやすい点をまとめて確認できます。
いいえ。この一覧では番号が小さいグループほど優先度が高い扱いです。番号は一覧内の目安なので、C規格の全項目を表す公式な順位としては使わないでください。
そうとは限りません。結合性が示すのは式の構文上のまとまりです。オペランドの実行時評価順序は別の規則に従うため、特に関数呼び出しや副作用を含む式では規格と処理系の診断を確認してください。
カテゴリと結合性を「すべて」に戻し、記号のほか名称・説明・例・番号でも試してください。同じ記号が別カテゴリにもある場合があります。なお、ここでは式全体の構文解析やコンパイルは行いません。
注意
利用範囲、結果の制限、必要な注意点を事前に確認します。
このページが示すのは、収録項目の日本語名・説明・例と一覧内のグループ番号です。入力したCコードの構文、型、規格適合性、コンパイル結果を検査するものではありません。必要な演算子や言語機能が見つからないときは、使っているC規格の版と処理系の資料を別途確認してください。
優先度と結合性から分かるのは式のまとまりであり、一般的な実行順序ではありません。副作用を含む式の挙動をこれらの番号だけで予測せず、式を単純に分割する、括弧で意図を明示する、規格本文やコンパイラーの診断を確認するなどして判断してください。
関連
関連ツール、特集、利用可能なAPIを探せます。