カテゴリ: C言語 更新日: 2026/01/14

C言語の型変換(キャスト)を徹底解説!初心者向けにわかりやすく説明

C言語の型変換(キャスト)の基本と注意点
C言語の型変換(キャスト)の基本と注意点

先生と生徒の会話形式で理解しよう

生徒

「C言語で変数の型を変えたいときはどうすればいいですか?整数を小数にしたり、小数を整数にしたりできますか?」

先生

「できますよ。C言語では型変換という仕組みを使って違う型に変えられます。型変換はキャストとも呼ばれます。」

生徒

「キャストって難しそうに聞こえるんですけど、何のために使うんですか?」

先生

「型が違うまま計算すると、結果が想像と違ってしまうことがあります。キャストは、計算ミスを防ぐための大切なテクニックなんです。」

1. 型変換(キャスト)とは?

1. 型変換(キャスト)とは?
1. 型変換(キャスト)とは?

C言語の型変換とは、変数や値の型を別の型へ変える仕組みです。例えば、整数のint型を小数のfloat型にしたいときなどに使います。プログラミング未経験の人はイメージがしづらいですが、型とは「データがどんな性質か」を示すラベルのようなものです。水をコップに入れるか、バケツに入れるかの違いに例えることができます。

キャストを使えば次のような変換ができます。

  • int → float
  • float → int
  • char → int

型変換は勝手に行われる場合と、自分で明示的に書く場合の2種類があります。

2. 暗黙的型変換

2. 暗黙的型変換
2. 暗黙的型変換

暗黙的型変換とは、自動で行われる型変換のことです。C言語の中で計算するとき、型が違うと自動的に大きな型に合わせられます。初心者はこの動きを知らないと、結果が思ったとおりにならず戸惑ってしまいます。


#include <stdio.h>

int main() {
    int a = 5;
    float b = 2.0;
    float c = a + b;
    printf("%f\n", c);
    return 0;
}

この場合、aは整数ですが、bが小数なので自動で小数として扱われます。そのため、結果は小数で表示されます。これが暗黙的型変換です。

3. 明示的型変換(キャスト)

3. 明示的型変換(キャスト)
3. 明示的型変換(キャスト)

キャストとは、自分で型を指定して変換することです。計算結果を確実にしたいときに使います。キャストは変換したい値の前に(型名)と書きます。


#include <stdio.h>

int main() {
    int a = 5;
    int b = 2;
    float c = (float)a / b;
    printf("%f\n", c);
    return 0;
}

普通にa / bを計算すると整数同士の計算になり、小数が切り捨てられます。しかし、(float)aとキャストすると、aが小数として扱われ、正しい小数の結果が得られます。

4. 小数を整数にキャストするとどうなる?

4. 小数を整数にキャストするとどうなる?
4. 小数を整数にキャストするとどうなる?

小数を整数に変換すると、小数点以下が切り捨てられます。四捨五入ではありませんので注意が必要です。


#include <stdio.h>

int main() {
    float x = 3.99;
    int y = (int)x;
    printf("%d\n", y);
    return 0;
}

3

3.99なのに3になります。切り上げもされません。この挙動を知らないと、数字の計算で大きな誤差が出ることがあります。

5. キャストの注意点

5. キャストの注意点
5. キャストの注意点

初心者がやりがちな失敗で多いのが「型を小さくしてしまうミス」です。例えば、大きな整数を小さな型に変換すると、値が壊れてしまうことがあります。


#include <stdio.h>

int main() {
    int num = 1000;
    char c = (char)num;
    printf("%d\n", c);
    return 0;
}

charは非常に小さく、1000という数字は入りません。そのため違う値に変わる可能性があります。データが欠けることを「データの破損」と呼びます。

もう一つの注意として、キャストしたからといって本質的な型が変わるわけではありません。計算式の一部で変換しても、元の変数は変わらないので勘違いしないようにしましょう。

6. 計算式のどこでキャストするかが大切

6. 計算式のどこでキャストするかが大切
6. 計算式のどこでキャストするかが大切

同じ式でも、キャストする場所が違うと結果が変わることがあります。


#include <stdio.h>

int main() {
    int a = 5, b = 2;
    float x = (float)a / b;
    float y = (float)(a / b);
    printf("%f\n", x);
    printf("%f\n", y);
    return 0;
}

2.500000
2.000000

先にaをキャストすれば小数計算になりますが、後者はa / bが先に整数で計算され、2になってから小数に変換されます。この違いは非常に重要です。

7. キャストを使う目的

7. キャストを使う目的
7. キャストを使う目的

C言語のキャストは、次の目的で使われます。

  • 小数計算を正確に行うため
  • 型が違う変数での計算や代入を行うため
  • 誤差や切り捨てをコントロールするため

キャストの仕組みを理解すると、計算処理やプログラムの精度が向上します。特にゲーム開発や科学計算では小数計算が重要なので、キャストの知識は役立ちます。

8. キャストを書かないほうが良い場合

8. キャストを書かないほうが良い場合
8. キャストを書かないほうが良い場合

キャストは便利ですが、むやみに使うとバグの原因になります。値が意図せず変わったり、読みづらいコードになったりします。できるだけ自然に計算できるように型を揃えるのがおすすめです。

例えば、整数と小数を扱うなら、最初からfloatやdoubleを使うほうが安全です。

9. キャストを理解すれば数字の扱いが上手くなる

9. キャストを理解すれば数字の扱いが上手くなる
9. キャストを理解すれば数字の扱いが上手くなる

型変換は、プログラミングで必ず登場する重要なテクニックです。C言語は型に厳しい言語なので、キャストを知っているだけでトラブルを防げます。整数、小数、文字、さまざまな型を正しく扱うためにも、キャストの癖をつかんでおきましょう。

カテゴリの一覧へ
新着記事
New1
Rust
RustのStringと&strを徹底解説!初心者向けの使い分けと設計判断ガイド
New2
C++
C++のメンバアクセス演算子を完全解説!初心者でもわかる . → :: の使い方まとめ
New3
Rust
Rustの文字列を極める!&str(文字列スライス)の基本概念とString型との違い
New4
C++
C++のキャスト演算子を完全解説!dynamic_cast・static_cast・const_cast・reinterpret_castを初心者向けに説明
人気記事
No.1
Java&Spring記事人気No1
C++
C++の主要な実装をわかりやすく解説!GCC・Clang・MSVCの違いと特徴
No.2
Java&Spring記事人気No2
C言語
C言語を学ぶ初心者におすすめの環境構築手順【2025年版】
No.3
Java&Spring記事人気No3
C言語
C言語開発でよく使われるエディタとIDEランキング【初心者向け完全ガイド】
No.4
Java&Spring記事人気No4
C言語
C言語のソースコードとヘッダファイルの役割とは?初心者向けにわかりやすく解説!
No.5
Java&Spring記事人気No5
C言語
Visual Studio CodeでC言語を実行する方法【拡張機能の設定と実行手順】
No.6
Java&Spring記事人気No6
C言語
C言語をオンラインで実行できる便利なコンパイラサービスまとめ【初心者向け】
No.7
Java&Spring記事人気No7
C言語
【C言語 入門】breakとcontinueの使い方を完全解説|繰り返し処理を制御する基本構文
No.8
Java&Spring記事人気No8
C言語
C言語の静的変数staticを完全ガイド!初心者でもわかる仕組みと使い方