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

C言語の演算子―優先順位やノットイコール、アロー演算子についてもしっかり解説。

トップ プログラミング C言語 C言語の構文 演算子

C言語の演算子についてまとめています。優先順位やノットイコール、アロー演算子についてもしっかりと解説しています。

目次

この記事の目次です。

1. 演算子とは

2. C言語のイコールとノットイコールの演算子の使用方法

3. C言語の代入演算子(=)の使用方法

4. C言語の算術演算子

5. C言語のアロー演算子

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

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

更新履歴

1. 演算子とは

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

2=1+1のような計算式がある場合、=と+のような記号のことを演算子(operator)と呼びます。 ここではC言語で使用可能な演算子の使用方法について説明しています。

2. C言語のイコールとノットイコールの演算子の使用方法

C言語のイコールとノットイコールの演算子の使用方法の使用方法について見ていきます。

C言語のイコールとノットイコール

C言語のイコールとノットイコールの演算子は次の記号が使われます。

C言語の同じかどうかの比較の演算子
 演算子  記号 
等価(イコール)==
非等価(ノットイコール)!=

このように「=」がイコールではなく、「==」がイコールの意味で使われます。 「=」は左辺に右辺の値を設定する値の代入の意味になります。

サンプルソース

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

//ファイル名:sample.c

#include <stdio.h>

int main(void) {
	int i = 0;

	if (i == 0) {
		printf("変数iの値は0とイコールです。\n");
	}

	i = 1;
	if (i != 0) {
		printf("代入後の変数iの値は0とノットイコールです。\n");
	}
	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
変数iの値は0とイコールです。
代入後の変数iの値は0とノットイコールです。

3. C言語の代入演算子(=)の使用方法

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言語の算術演算子

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

このページでは、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. C言語のアロー演算子

C言語の構造体とポインターについてみて、C言語のアロー演算子について解説していきます。

構造体

C言語には、複数のデータを一まとまりにする構造体という仕組みが用意されています。

structの直後に「タグ名」、構造体内の各データのことを「メンバ」と呼びます。 たとえば、次のように定義します。

struct Person {
    char* name;
    char* address;
}

ポインタ

C言語には、メモリの位置を直接あらわす「ポインタ」という機能が用意されています。

ポインタの使い方は、intやcharの変数と同じように名前を決めて宣言しますが、「*」という記号を付けて宣言します。

char a;
char *pA;
a = 'a';
pA = &a;

構造体のデータを指し示すポインタ

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

アロー演算子の利用例

struct Person *person;
person = malloc(sizeof(struct Person));
person->name = strdup("太郎");

6. 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位 の演算子
 演算子  記号 
順次(コンマ),

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

更新履歴

戻る

スポンサーリンク

情報処理の知識体系

プログラミング

各試験の問題と解説

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

スポンサーリンク