Categories: C言語

【C言語】任意の型を変換する方法【キャスト】

この記事では、C言語で型変換(キャスト)する方法を解説します。

C言語の型変換には 暗黙的な型変換明示的な型変換 があります。

暗黙的な型変換は、コンパイラの判断によって自動で行われます。どんなタイミングで変換されるか学んで「いつの間にか予想外の型になってる」なんてことがないようにしましょう!

暗黙的な型変換

暗黙的な型変換とは、明示的に記述しなくてもコンパイラの判断によって自動で行われる型変換のことを言います。

代入での型変換

自身とは異なる型の変数に代入することで暗黙的に型変換が行われます。

#include <stdio.h>

int main(void){
    
    int n = 10;
    float f;

    // float型の変数にint型の値を代入
    f = n;

    // 出力
    printf("%f\n", f);
    
}

実行結果

10.000000
  • 浮動小数点数型から整数型に変換すると小数点以下は切り捨てられる
  • 範囲が大きい型から小さい型に変換すると値がおかしくなる

型の精度は以下の記事が参考になります。

Link【C言語/C++】データ型のサイズ・範囲の一覧【32bit/64bit環境】

演算での型変換

異なる型同士で演算を行う場合、精度が高い(範囲が広い)方に変換されます。

#include <stdio.h>

int main(void){
    
    int n = 10;
    float f = 1;

    // float型とint型の足し算
    float r = f + n;

    // 出力
    printf("%f\n", r);
    
}

実行結果

11.000000

明示的な型変換

明示的な型変換とは、変換したい型を明示的に指定して行います。

(型名)変数

試しに、char型の変数をint型に変換して見ます。

#include <stdio.h>

int main(void){
    
    int n = 10;

    // float型に変換しつつ出力
    printf("%f\n", (float)n);
    
}

実行結果

10.000000

まとめ

この記事では、C言語での型変換について解説しました。

難しい内容ではありませんが気を付けてないとバグを引き起こす可能性があります。

それでは今回の内容はここまでです。ではまたどこかで〜( ・∀・)ノ

ゆうまる

独学でプログラミングを勉強しているおじさん。いろんな言語を勉強したが浅く広くなためあまり仕事につながらない。また忘れっぽいため自分のブログを備忘録としても使っている。産まれてこのかたずっとネコを飼ってる生粋のネコ派。最近お腹が出てきて筋トレに奮闘中!

View Comments

Recent Posts

【Dart】コンストラクタのデフォルト引数について

Dartのコンストラクタのデフォルト引数…

2週間 ago

【Unity】有料アセットを無料で手に入れる方法

この記事では、Unityの有料アセットを…

4か月 ago

【Python】任意の秒数だけ処理を一時停止する方法【sleep()関数】

この記事では、Pythonで任意の秒数だ…

1年 ago

【Python】Wordの文書の新規作成と読み書き

この記事では、Pythonを使ってWor…

1年 ago

【Python】メタクラスって結局なんなの?

この記事では、Pythonのメタクラスに…

1年 ago