情報処理のWeb教科書―IPA情報処理試験対策のお供に!

C言語の演算子―優先順位、ノットイコール、アロー演算子、四則演算アプリなど。

トップ プログラミング C言語 入門 演算子

C言語の演算子についてまとめています。優先順位やノットイコール、アロー演算子、サンプルプログラムでは四則演算アプリなども紹介しています。

▲記事トップへ

目次

この記事の目次です。

1. C言語の演算子とは
2. 等価演算子(イコール、ノットイコール)
3. 代入演算子
4. 算術演算子
5. 四則演算を行うアプリ
6. アロー演算子
7. C言語の演算子の種類とその優先順位

もっと知識を広げるための参考
更新履歴

1. C言語の演算子とは

はじめに、C言語の演算子とは何かについて簡単に説明していきます。

演算子とは

演算子(operator)とは、2=1+1のような計算式がある場合、=と+のような記号のこといいます。

C言語で使える演算子

C言語には、等価演算子(イコール、ノットイコール)、算術演算子、論理演算子、条件演算子、比較演算子、ビット演算子、べき乗の演算子、余りの演算子などの演算子が使用できます。

以下の章では、等価演算子(イコール、ノットイコール)や代入演算子、算術演算子、アロー演算子など、主な演算子をピックアップして解説し、最後にすべての演算子の一覧をまとめています。

2. 等価演算子(イコール、ノットイコール)

C言語のノット(not)イコールの記号は「!=」です。C言語の等価演算子(イコールとノットイコール)の使用方法について解説しています。

詳細

3. 代入演算子

C言語の代入演算子(=)の使用方法について見ていきます。

代入演算子(=)を使用して、値を変数に代入(設定)することができます。

サンプルソース

ソースフォルダに以下のサンプルコードを記述したテキストファイルを作成します。

//ファイル名:sample.c

#include <stdio.h>

int main(void) {
	int i = 0;
	printf("%d\n", i);

	i = 1;
	printf("%d\n", i);
	return 0;
}

サンプルコードについて

サンプルコードでは、iという整数(int)型の変数に 0、1という数を順番に設定(代入)して出力しています。

printf関数にカンマ区切りで引数を2つしていしており、1つ目に%dを設定し、2つ目の引数で指定した変数iの値が出力されるようにしています。

コンパイル方法

コマンドプロンプトでソースファイルを保存したフォルダに移動しgccコマンドを実行してコンパイルします。

>cd test
>gcc sample.c

実行方法

a.exeというファイルができたフォルダにコマンドプロンプトで移動し、 a.exeとコマンドラインに入力すると0と1の数字が改行されて出力されます。

>a.exe
0
1

4. 算術演算子

算術演算子を使用して、加減乗除の計算を行うことができます。

このページでは、C言語の加算演算子(+)の使用方法について説明しています。

加算演算子(+)

加算演算子(+)を使用して、加算(足し算)を行うことができます。

サンプルソース

ソースフォルダに以下のサンプルコードを記述したテキストファイルを作成します。

//ファイル名:sample.c

#include <stdio.h>

int main(void) {
	printf("加算)1 + 2 は %d\n", 1 + 2);
	return 0;
}

コンパイル方法

コマンドプロンプトでソースファイルを保存したフォルダに移動しgccコマンドを実行してコンパイルします。

>cd test
>gcc sample.c

実行方法

a.exeというファイルができたフォルダにコマンドプロンプトで移動し、a.exeとコマンドラインに入力します。

>a.exe
加算)1 + 2 は 3

減算演算子(-)の使用方法

C言語の減算演算子(-)の使用方法について説明しています。

減算演算子(-)を使用して、減算(引き算)を行うことができます。

サンプルソース

ソースフォルダに以下のサンプルコードを記述したテキストファイルを作成します。

//ファイル名:sample.c

#include <stdio.h>

int main(void) {
	printf("減算)3 - 2 は %d\n", 3 - 2);
	return 0;
}

コンパイル方法

コマンドプロンプトでソースファイルを保存したフォルダに移動しgccコマンドを実行してコンパイルします。

>cd test
>gcc sample.c

実行方法

a.exeというファイルができたフォルダにコマンドプロンプトで移動し、 a.exeとコマンドラインに入力します。

>a.exe
減算)3 - 2 は 1

乗算演算子(*)の使用方法

C言語の乗算演算子(*)の使用方法について説明しています。

乗算演算子(*)を使用して、乗算(掛け算)を行うことができます。

サンプルソース

ソースフォルダに以下のサンプルコードを記述したテキストファイルを作成します。

//ファイル名:sample.c

#include <stdio.h>

int main(void) {
	printf("乗算)3 × 2 は %d\n", 3 * 2);
	return 0;
}

コンパイル方法

コマンドプロンプトでソースファイルを保存したフォルダに移動しgccコマンドを実行してコンパイルします。

>cd test
>gcc sample.c

実行方法

a.exeというファイルができたフォルダにコマンドプロンプトで移動し、 a.exeとコマンドラインに入力します。

>a.exe
乗算)3 × 2 は 6

除算演算子(/)の使用方法

C言語の除算演算子(/)の使用方法について説明しています。

除算演算子(/)を使用して、除算(割り算)を行うことができます。

サンプルソース

ソースフォルダに以下のサンプルコードを記述したテキストファイルを作成します。

//ファイル名:sample.c

#include <stdio.h>

int main(void) {
	printf("除算)7 ÷ 2 は %d\n", 7 / 2);
	return 0;
}

コンパイル方法

コマンドプロンプトでソースファイルを保存したフォルダに移動しgccコマンドを実行してコンパイルします。

>cd test
>gcc sample.c

実行方法

a.exeというファイルができたフォルダにコマンドプロンプトで移動し、 a.exeとコマンドラインに入力します。

>a.exe
除算)7 ÷ 2 は 3

なお、余りを計算するには除余算演算子を使用します。

除余算演算子(%)の使用方法

C言語の除余算演算子(%)の使用方法について説明しています。

除余算演算子(%)を使用して、除余算(割り算の余りの計算)を行うことができます。

サンプルソース

ソースフォルダに以下のサンプルコードを記述したテキストファイルを作成します。

//ファイル名:sample.c

#include <stdio.h>

int main(void) {
	printf("除余算)7 ÷ 2 の余りは %d\n", 7 % 2);
	return 0;
}

コンパイル方法

コマンドプロンプトでソースファイルを保存したフォルダに移動しgccコマンドを実行してコンパイルします。

>cd test
>gcc sample.c

実行方法

a.exeというファイルができたフォルダにコマンドプロンプトで移動し、 a.exeとコマンドラインに入力します。

>a.exe
除余算)7 ÷ 2 の余りは 1

なお、余りを計算するには除余算演算子を使用します。

5. 四則演算を行うアプリ

簡単な四則演算を行うアプリケーションの例です。

サンプルソース

ソースフォルダに以下のサンプルコードを記述したテキストファイル(mycalc.c)を作成します。

#include <stdio.h>

int checkArgs(int argc, char **argv);
int covert2num(char c);

int main(int argc, char **argv) {
    int i;
    int a,b;

    if (checkArgs(argc, argv) != 0) {
        printf("引数を指定してください。例)mycalc 1 + 1\n");
        return 1;
    }

    a = covert2num(argv[1][0]);
    if (a == -1) {
        printf("角数字1桁で指定してください。\n");
        return 1;
    }

    b = covert2num(argv[3][0]);
    if (b == -1) {
        printf("半角数字1桁で指定してください。\n");
        return 1;
    }

    switch (argv[2][0]) {
        case '+':
            printf("%d\n", a+b);
            break;
        case '-':
            printf("%d\n", a-b);
            break;
        case 46: //「.」は正規表現のため文字コード指定
            printf("%d\n", a*b);
            break;
        case '/':
            printf("%d\n", a/b);
            break;
        default:
            printf("加算「+」、減算「-」、乗算「.」、除算「/」で指定してください。%d\n", argv[2][0]);
            return 1;
    }
    return 0;
}

int checkArgs(int argc, char **argv) {
    int i;
    if (argc != 4) {
        return 1;
    }
    return 0;
}

int covert2num(char c) {
    switch(c) {
        case '0': return 0;
        case '1': return 1;
        case '2': return 2;
        case '3': return 3;
        case '4': return 4;
        case '5': return 5;
        case '6': return 6;
        case '7': return 7;
        case '8': return 8;
        case '9': return 9;
    }
    return -1;
}

コンパイル方法

コマンドプロンプトでソースファイルを保存したフォルダに移動しgccコマンドを実行してコンパイルします。 オプションoを指定して実行形式ファイル名をmycalcにします。

>cd test
>gcc -o mycalc mycalc.c

実行方法

mycalc.exeができたフォルダにコマンドプロンプトで移動し、 以下のように実行します。

加算

加算は「+」を指定して行います。

mycalc 1 + 1

減算

減算は「-」を指定して行います。

mycalc 2 - 1

乗算

コマンドプロンプトで「*」は使えないので、乗算は「.」を指定して行います。

mycalc 2 . 2

除算

除算は「/」を指定して行います。

mycalc 4 / 2

6. アロー演算子

構造体のメンバへのアクセスには、「.」、ドット演算子を使用しますが、構造体のデータを指し示すポインタについては、ドットではなくて、「->」、アロー演算子を使用します。 C言語の構造体とポインターについて補足しながら、C言語のアロー演算子について解説しています。

詳細

7. C言語の演算子の種類とその優先順位

以下にC言語の演算子の種類を優先順位別にまとめています。

優先順位 No.1 関数呼び出しの括弧やアロー演算子など

関数呼び出しの括弧やアロー演算子など、C言語の優先順位 1位 の演算子です。

優先順位 1位 の演算子
 演算子  記号 
関数呼出し()
配列添字[]
ドット(メンバ参照).
アロー(メンバ間接参照)->
後置インクリメント++
後置デクリメント--

優先順位 No.2 四則演算や前置インクリメントなど

四則演算や前置インクリメントなど、C言語の優先順位 2位 の演算子です。

C言語の優先順位 2位 の演算子
 演算子  記号 
論理否定!
補数~
単項++
単項--
sizeofsizeof
前置インクリメント++
前置デクリメント--
アドレス&
間接参照*

優先順位 No.3 キャスト演算子

C言語の優先順位 3位 の演算子はキャスト演算子です。

C言語の優先順位 3位 の演算子
 演算子  記号 
キャスト()

優先順位 No.4 割り算、掛け算の乗除記号など

割り算、掛け算の乗除記号などC言語の優先順位 4位 の演算子です。

C言語の優先順位 4位 の演算子
 演算子  記号 
剰余%
乗算*
除算/

優先順位 No.5 足し算、引き算

足し算、引き算の記号はC言語の優先順位 5位 の演算子です。

C言語の優先順位 5位 の演算子
 演算子  記号 
加算+
減算-

優先順位 No.6 シフト演算

シフト演算はC言語の優先順位 6位 の演算子です。

C言語の優先順位 6位 の演算子
 演算子  記号 
左シフト<<
右シフト>>

優先順位 No.7 大小比較

大小比較の演算子はC言語の優先順位 7位 の演算子です。

C言語の優先順位 7位 の演算子
 演算子  記号 
より大きい>
以上>=
未満<
以下<=

優先順位 No.8 同じかどうかの比較

同じかどうかの比較の演算子はC言語の優先順位 8位 の演算子です。

C言語の優先順位 8位 の演算子
 演算子  記号 
等価==
非等価(ノットイコール)!=

優先順位 No.9 ビット論理積

ビット論理積はC言語の優先順位 9位 の演算子です。

C言語の優先順位 9位 の演算子
 演算子  記号 
ビット論理積&

優先順位 No.10 ビット排他的論理和

ビット排他的論理和はC言語の優先順位 10位 の演算子です。

C言語の優先順位 10位 の演算子
 演算子  記号 
ビット排他的論理和^

優先順位 No.11 ビット論理和

ビット論理和はC言語の優先順位 11位 の演算子です。

C言語の優先順位 11位 の演算子
 演算子  記号 
ビット論理和|

優先順位 No.12 ビットではない論理積

ビットではない論理積はC言語の優先順位 12位 の演算子です。

C言語の優先順位 12位 の演算子
 演算子  記号 
論理積&&

優先順位 No.13 ビットではない論理和

ビットではない論理和はC言語の優先順位 13位 の演算子です。

C言語の優先順位 13位 の演算子
 演算子  記号 
論理和||

優先順位 No.14 条件演算子

条件演算子はC言語の優先順位 14位 の演算子です。

C言語の優先順位 14位 の演算子
 演算子  記号 
条件演算子?:

優先順位 No.15 代入関連

代入関連の演算子はC言語の優先順位 15位 の演算子です。

C言語の優先順位 15位 の演算子
 演算子  記号 
単純代入=
加算代入+=
減算代入-=
乗算代入*=
除算代入/=
剰余代入%=
左シフト代入<<=
右シフト代入>>=
ビット積代入&=
ビット排他的論理和代入^=
ビット和代入|=

優先順位 No.16 順次(コンマ)

順次(コンマ)演算子はC言語の優先順位 16位 の演算子です。

C言語の優先順位 16位 の演算子
 演算子  記号 
順次(コンマ),

もっと知識を広げるための参考

更新履歴

戻る

スポンサーリンク

情報処理の知識体系

各試験の問題と解説

ランダム出題・採点アプリ

プログラミング

スポンサーリンク