見出し画像

No.9 代入演算子とキャスト

今回は、C言語の代入演算子とキャストについて解説します。

前回の記事をまだ見ていない方は、下記のリンクからぜひ見てください。
前回の記事を見てからこの記事を見ると理解しやすいです。↓

また、わからない点があればぜひコメントお願いします。
わかりやすいように更新させていただきます。


代入演算子とは

代入演算子とは、変数に値を設定するために使用される演算子です。
C言語では、最も基本的な代入演算子は = ですが、それ以外にも複合代入演算子が存在します。

ここからは基本的な代入演算子について解説していきます。

代入演算子一覧

C言語の代入演算子には次のようなものがあります。↓

複合代入演算子とは

代入演算子には複合代入演算子というものがあります。
複合代入演算子は、算術演算子と代入演算子を組み合わせたものです。

代入演算子一覧の = 以外は複合代入演算子です。

複合代入演算子の使い方

複合代入演算子は、代入したい変数を左側に書き、使いたい複合代入演算子を真ん中に書きます。代入し計算する変数や数字を右側に書きます。

(例)

#include <stdio.h>

int main() {
    int a = 10;
    a += 5; // a = a + 5 と同じ(aは15になる)
    printf("加算して代入: %d\n", a); // 出力: 15
    return 0;
}

の実行結果は

加算して代入:15

となります。

また

#include <stdio.h>

int main() {
    int a = 10;
    int b = 5;
    a += b; // a = a + b と同じ(aは15になる)
    printf("加算して代入: %d\n", a); // 出力: 15
    return 0;
}

の実行結果は

加算して代入:15

となります。

キャストとは

キャストとは、変数や式の型を別の型に変換することです。
C言語では、明示的キャスト(ユーザーが指定する型変換)と暗黙的キャスト(コンパイラによる自動型変換)の2種類があります。

明示的キャストについて

明示的キャストは、プログラムで変換したい型を明示的に指定する方法です。

明示的キャストでは、変換したい値や変数の前に変換したい型を括弧で囲んで記述します。

また、キャストをしても元の変数には結果は保存されないのでそのまま出力する、もしくは他の変数に代入する必要があります。

(例)

#include <stdio.h>

int main() {
    double a = 3.14;
    int b;

    b = (int)a; // 明示的キャスト:doubleをintに変換
    printf("変換後の値: %d\n", b); // 出力: 3

    return 0;
}

では 3.14 を整数にするので 0.14 を切り捨てます。

#include <stdio.h>

int main() {
    double a = 3.14;

    printf("変換後の値: %d\n", (int)a); // 明示的キャストを直接使用

    return 0;
}

のように、キャストの結果をそのまま出力することもできます。

暗黙型キャストとは

暗黙的キャストは、コンパイラが必要に応じて自動的に型変換を行う方法です。

暗黙的キャストでの型変換の優先順位は次のようになっています。↓

  1. double

  2. float

  3. unsigned int

  4. int

  5. char(注:通常は int に変換される)

(例)

#include <stdio.h>

int main() {
    int a = 10;
    double b = 3.14;
    double result;

    result = a + b; // 暗黙的キャスト:intがdoubleに変換される
    printf("結果: %f\n", result); // 出力: 13.140000

    return 0;
}

というプログラムでは変数 a と変数 b の和がキャストの優先順位が高い double型で出力されています。

問題

次のプログラムの出力は何ですか?

#include <stdio.h>

int main() {
    int x = 7;
    x *= 2;
    x += 3;
    x %= 5;
    printf("%d\n", x);
    return 0;
}

回答

2

となります。

x=7×2
 =14
x=14+3
 =17
17を5で割ったときの余りは 2 なので出力は 2 となる。

今回は以上です。


いいなと思ったら応援しよう!