情報処理のWeb教科書―IPA情報処理試験対策のお供に!
C言語の演算子についてまとめています。優先順位やノットイコール、アロー演算子についてもしっかりと解説しています。
この記事の目次です。
C言語の演算子の使用方法について見ていきます。
2=1+1のような計算式がある場合、=と+のような記号のことを演算子(operator)と呼びます。 ここでは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とノットイコールです。
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
算術演算子を使用して、加減乗除の計算を行うことができます。
このページでは、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
なお、余りを計算するには除余算演算子を使用します。
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("太郎");
以下にC言語の演算子の種類を優先順位別にまとめています。
関数呼び出しの括弧やアロー演算子など、C言語の優先順位 1位 の演算子です。
演算子 | 記号 |
---|---|
関数呼出し | () |
配列添字 | [] |
ドット(メンバ参照) | . |
アロー(メンバ間接参照) | -> |
後置インクリメント | ++ |
後置デクリメント | -- |
四則演算や前置インクリメントなど、C言語の優先順位 2位 の演算子です。
演算子 | 記号 |
---|---|
論理否定 | ! |
補数 | ~ |
単項+ | + |
単項- | - |
sizeof | sizeof |
前置インクリメント | ++ |
前置デクリメント | -- |
アドレス | & |
間接参照 | * |
C言語の優先順位 3位 の演算子はキャスト演算子です。
演算子 | 記号 |
---|---|
キャスト | () |
割り算、掛け算の乗除記号などC言語の優先順位 4位 の演算子です。
演算子 | 記号 |
---|---|
剰余 | % |
乗算 | * |
除算 | / |
足し算、引き算の記号はC言語の優先順位 5位 の演算子です。
演算子 | 記号 |
---|---|
加算 | + |
減算 | - |
シフト演算はC言語の優先順位 6位 の演算子です。
演算子 | 記号 |
---|---|
左シフト | << |
右シフト | >> |
大小比較の演算子はC言語の優先順位 7位 の演算子です。
演算子 | 記号 |
---|---|
より大きい | > |
以上 | >= |
未満 | < |
以下 | <= |
同じかどうかの比較の演算子はC言語の優先順位 8位 の演算子です。
演算子 | 記号 |
---|---|
等価 | == |
非等価(ノットイコール) | != |
ビット論理積はC言語の優先順位 9位 の演算子です。
演算子 | 記号 |
---|---|
ビット論理積 | & |
ビット排他的論理和はC言語の優先順位 10位 の演算子です。
演算子 | 記号 |
---|---|
ビット排他的論理和 | ^ |
ビット論理和はC言語の優先順位 11位 の演算子です。
演算子 | 記号 |
---|---|
ビット論理和 | | |
ビットじゃない論理積はC言語の優先順位 12位 の演算子です。
演算子 | 記号 |
---|---|
論理積 | && |
ビットじゃない論理和はC言語の優先順位 13位 の演算子です。
演算子 | 記号 |
---|---|
論理和 | || |
条件演算子はC言語の優先順位 14位 の演算子です。
演算子 | 記号 |
---|---|
条件演算子 | ?: |
代入関連の演算子はC言語の優先順位 15位 の演算子です。
演算子 | 記号 |
---|---|
単純代入 | = |
加算代入 | += |
減算代入 | -= |
乗算代入 | *= |
除算代入 | /= |
剰余代入 | %= |
左シフト代入 | <<= |
右シフト代入 | >>= |
ビット積代入 | &= |
ビット排他的論理和代入 | ^= |
ビット和代入 | |= |
順次(コンマ)演算子はC言語の優先順位 16位 の演算子です。
演算子 | 記号 |
---|---|
順次(コンマ) | , |
Windowsでも使えるフリーソフトのgccコンパイラで学ぶC言語入門用のオリジナルテキストをまとめています。 フリーソフトのgccコンパイラのインストール方法や基本文法はもちろんですが、分割コンパイルやヘッダーファイルの作成方法など入門者にとって気になる内容もまとめています。
Copyright (C) 2010-2018 情報処理のWeb教科書. All Rights Reserved. Loarding…