C言語には一連の演算子がありますが、これらの演算子をすべて知っていますか?
C言語を上手に学びたいのなら、空っぽのカップ精神が必要なので、知っているかどうかにかかわらず、もう一度見てください!
C言語の演算子:
C言語には、主に算術演算子、シフト演算子、ビット演算子、代入演算子、単項演算子、関係演算子、論理演算子、条件演算子、コンマ式などが含まれます。それらの使い方を一つ一つ見ていきましょう!
算術演算子: +、-、*、/、%
算術演算子+、-、*誰もがそうすると思いますが、初心者の中には/と%の違いがはっきりしない人もいます(数か月前にやったと密かに言っています)区別がつかない)。
実際、a / bの結果は、aをbで除算する商であり、a%bは、7を2で除算し、残りの3が1であるように、aをbで除算した余りです。 、および7%2は1に等しい。
シフト演算子: <<、>>
左シフト演算子は右シフト演算子に似ています。例として左シフト演算子を取り上げましょう。
では、なぜ結果が10なのですか?
実際、数値はコンピューターに2進数で格納され、int型のサイズは4バイト(32ビット)であるため、5の2進数表現は00000000000000000000000000000101であり、a << 1はMoveの2進数ビットを統合することを意味します。左に1ビット、空を0で埋め、変換された2進数を10進数に変換して出力します。
また、a << 1の後の2進数に対応する10進数は10なので、出力は10です。
ビット演算子:&、|、^
ビット演算子の操作メカニズムは非常に似ていますが、規則が異なります。それらはすべて、オペランドをバイナリに変換し、バイナリの各桁を比較してから、操作を実行します。
&:バイナリ対応ビットが両方とも1の場合は1、それ以外の場合は0です。
|:両方のバイナリ対応ビットが0の場合は0、それ以外の場合は1です。
^:バイナリ対応ビットが同じ場合は0、異なる場合は1です。
代入演算子:=、+ =、-=、* =、/ =、&=、| =、^ =、<< =、>> =
私の意見では、代入演算子はステートメントを単純化するだけ
です。他のものは類推によって推測できます。最初は少しぎこちなく見えますが、もっと読むと慣れます^ _ ^
単眼演算子:
オペレーター | オペレーターの役割 |
---|---|
! | 論理逆演算 |
- | 負の値 |
+ | 正の値 |
& | 住所を取る |
のサイズ | オペランドのタイプの長さ(バイト単位) |
〜 | 数値の2進ビットを反転します |
--- | フロントリア - |
++ | フロント、リア++ |
* | 間接アクセス演算子(逆参照演算子) |
(の種類) | 強制型変換 |
単項演算子は、その名前が示すように、オペランドが1つだけです。
関係演算子: >、> =、<、<=、!=、==
関係演算子は比較的単純ですが、==を使用するときは、=と書かないように注意してください。初心者はこれに特別な注意を払う必要があります。
論理演算子: &&、||
&&:両側が真の場合は真、それ以外の場合は偽です。
||:両側が偽の場合は偽、それ以外の場合は真です。
(どちらもtrueの場合は1を返し、falseの場合は0を返します。)
条件演算子: expr1?expr2:expr3
この式では、expr1がtrueの場合はexpr2の値を返し、そうでない場合はexpr3の値を返します。
コンマ式: expr1、expr2、expr3、...、exprN
コンマ式は左から右にコンパイルされますが、最後の式の値が最後に返されます。