C LANGUAGE TECHNOLOGY

【C言語】演算子の優先順位と結合規則

悩んでいる人

C言語で演算子の優先順位と結合規則を教えて!

こういった悩みにお答えします.

本記事の信頼性

  • リアルタイムシステムの研究歴12年.
  • 東大教員の時に,英語でOSの授業.
  • 2012年9月~2013年8月にアメリカのノースカロライナ大学チャペルヒル校コンピュータサイエンス学部2021年の世界大学学術ランキングで20位)で客員研究員として勤務.C言語でリアルタイムLinuxの研究開発
  • プログラミング歴15年以上,習得している言語: C/C++Solidity,Java,Python,Ruby,HTML/CSS/JS/PHP,MATLAB,Assembler (x64,ARM).
  • 東大教員の時に,C++言語で開発した「LLVMコンパイラの拡張」,C言語で開発した独自のリアルタイムOS「Mcube Kernel」GitHubにオープンソースとして公開

こういった私から学べます.

演算子の優先順位と結合規則

数学の式に優先順位があるのと同様に,C言語の演算子にも優先順位があります.

また,同じ順位なら右から左(←)か,左から右(→)に演算するのかを決定する結合規則があります.

下表において,優先順位は小さい番号ほど高く,大きい番号ほど低いことを示しています.

結合規則は,同じ優先順位の演算子が並んだ場合に,左右のどちらを先に演算するのかを決めます.

「←」は右から左に,「→」は左から右に演算されます.

優先順位演算子結合規則
1() [] -> . 後置の++と--
2! ~ 前置の++と—ポインタ演算子の*と& sizeof
3キャストの(型)
4乗算の * / %
5+ -
6<< >>
7< <= > >=
8
== !=
9ビット積の&
10^
11|
12&&
13||
14条件演算子の?:
15
= += -= *= /= %= &= |= ^= <<= >>=
16カンマ演算子の,

コードの保守の観点では,可読性を向上させることや,解釈に誤解を発生しないことが望ましいです.

なので,優先順位や結合規則としては実際には不要でも,明示的に優先順位が1位の()を入れることがあります.

その方が読みやすいですよね!

演算子に関する記事

C言語 演算子
【C言語】演算子とは

こういった悩みにお答えします. こういった私から学べます. 目次1 演算子2 算術演算子3 等値演算子と関係演算子4 論理演算子5 インクリメント演算子とデクリメント演算子6 ビット演算子とシフト演算 ...

続きを見る

C言語 剰余
【C言語】剰余演算子(%)の符号の注意点

こういった悩みにお答えします. こういった私から学べます. 目次1 剰余演算子(%)2 剰余演算子(%)の符号の注意点:is_odd関数で解説3 剰余演算子の間違った使い方4 剰余演算子の正しい使い方 ...

続きを見る

C言語 ビット演算子 シフト演算子
【C言語】ビット演算子とシフト演算子の使い方

こういった悩みにお答えします. こういった私から学べます. 目次1 ビット演算子2 &:ビット毎のAND(論理積)3 |:ビット毎のOR(論理和)4 ^:ビット毎のXOR(排他的論理和)5 ~ ...

続きを見る

C言語 sizeof演算子
【C言語】sizeof演算子の使い方

こういった悩みにお答えします. こういった私から学べます. 目次1 sizeof演算子2 sizeof演算子でデータ型のサイズの計算3 sizeof演算子で変数のサイズの計算4 sizeof演算子でポ ...

続きを見る

C言語 &
【C言語】&を利用する3つの演算子【アドレス,論理積,ビット毎の論理積】

こういった悩みにお答えします. こういった私から学べます. 目次1 &a,*b:アドレス演算子(&)と間接演算子(*)2 a && b:論理積演算子(&&amp ...

続きを見る

まとめ

C言語の演算子の優先順位と結合規則を紹介しました.

演算子の優先順位と結合規則を覚えておくとC言語のコードを正しく読み書きできます.

C言語を独学で習得することは難しいです.

私にC言語の無料相談をしたいあなたは,公式LINE「ChishiroのC言語」の友だち追加をお願い致します.

友だち追加

独学が難しいあなたは,C言語を学べるおすすめのオンラインプログラミングスクール5社で自分に合うスクールを見つけましょう.後悔はさせません!

-C LANGUAGE, TECHNOLOGY
-, , , , , , ,