月ノ書

【C言語入門】式と演算子の基本をやさしく解説

今回の記事でわかること

この記事では、C言語における
式の考え方演算子の種類について解説します

  • 式が何を意味しているのか分かる
  • よく使う演算子を整理して覚えられる

条件分岐やループを理解するためにも、ここはとても大事な土台になります

式とは

プログラミングでいう「式」とは
値・変数・演算子を組み合わせて、結果を計算できるものを指します

算数で
1 + 2 = 3
となるのと同じように

プログラムでも式を書けば、計算結果が得られます

int num = 1 + 2;
printf("%d", num);

/* 出力結果
3
*/

この場合

という流れになります

演算子とは

式の中で使われる計算や比較を行う記号を演算子と呼びます
C言語には多くの演算子がありますがまずはよく使うものから覚えるのがおすすめです

算術演算子

数値の計算に使う演算子です

演算子説明結果
+足し算3 + 25
引き算3 – 21
*掛け算3 * 26
/割り算5 / 22
%余り5 % 21
#include <stdio.h>

int main(void){
    int a = 5;
    int b = 2;

    printf("a + b = %d\n", a + b);
    printf("a - b = %d\n", a - b);
    printf("a * b = %d\n", a * b);
    printf("a / b = %d\n", a / b);
    printf("a %% b = %d\n", a % b);
}

int 型同士の割り算では小数点以下は切り捨てられる点に注意です
小数を扱いたい場合はfloatdouble を使います

比較演算子

数値を比べるための演算子です。結果は true または false になります

演算子意味結果
==等しい3 == 3true
!=等しくない3 != 2true
>大なり5 > 2true
<小なり2 < 5true
>=以上3 >= 3true
<=以下3 <= 3true
#include <stdio.h>

int main(void){
    int a = 5;
    int b = 2;

    printf("a == b : %d\n", a == b);
    printf("a != b : %d\n", a != b);
    printf("a > b  : %d\n", a > b);
    printf("a < b  : %d\n", a < b);
    printf("a >= b : %d\n", a >= b);
    printf("a <= b : %d\n", a <= b);
}

条件分岐で頻繁に使われる演算子です

代入演算子

右辺の値を左辺の変数に入れる演算子です

演算子意味結果
=代入a = 33
+=足して代入a += 38
-=引いて代入a -= 26
*=掛けて代入a *= 210
/=割って代入a /= 25
%=余りを代入a %= 21

同じ変数を更新するときに、コードが短くなって読みやすくなります

論理演算子(短絡演算子)

主に if 文で使われる演算子です

演算子意味
&&ANDa > 0 && b > 0
||ORa > 0 || b > 0
!NOT!(a > 0)
#include <stdio.h>

int main(void){
    int a = 0;
    int b = 1;

    if (a && b){
        printf("AND : true\n");
    } else {
        printf("AND : false\n");
    }

    a = 1;
    if (a || b){
        printf("OR : true\n");
    } else {
        printf("OR : false\n");
    }
}

左側の結果だけで、全体の結果が決まる場合、右側は評価されません
これを「短絡評価」と呼びます

インクリメント・デクリメント演算子

変数の値を1だけ増やす/減らす演算子です

演算子意味
++1増やすa++
1減らすa–

++aa++ では式として評価されるタイミングが違うので注意です

ビット演算子(知識として)

実務ではあまり使わないことも多いですが、仕組みとして知っておくと役立つ場面があります

演算子内容
&AND
|OR
^XOR
~NOT
<<左シフト
>>右シフト

ビット演算子は高速処理やハードウェア制御で使われることが多いです

まとめ

この内容が理解できると if 文や for 文が一気に分かりやすくなります

学習進捗

0
Would love your thoughts, please comment.x