工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> C言語

C 言語の型キャスト: 暗黙的・明示的変換をコード例でマスター

C 言語における型キャストとは?

C では、型キャスト (データ変換) はあるデータ型の値を別のデータ型に変換するプロセスです。すべての C プログラマーがマスターすべき基本概念です。

暗黙的型キャスト

暗黙的 (自動) 型キャストは、開発者の介入なしにコンパイラが自動的にあるデータ型を別のデータ型に変換することです。これは値の意味が保持され、ターゲット型がソース値を表現できる場合にのみ発生します。

  1. 暗黙的変換は代入、関数呼び出し、算術演算時に自動実行されます。
  2. 2 つのオペランドの型が異なる場合、ランクの低いオペランドがより高いランクの型に昇格されます。

例:

#include<stdio.h>
int main() {
    short a = 10; // short
    int b;        // int
    b = a;        // 暗黙的キャスト
    printf("%d\n", a);
    printf("%d\n", b);
    return 0;
}

出力:

10
10

コンパイラは short 値を int に自動昇格させ、情報損失を防ぎます。

C 言語の型キャスト: 暗黙的・明示的変換をコード例でマスター

文字から整数への昇格

char が算術式に参加すると、コンパイラはその ASCII コードを用いて int に昇格させます:

#include <stdio.h>
int main() {
    int number = 1;
    char character = 'k'; /* ASCII 107 */
    int sum = number + character;
    printf("Value of sum : %d\n", sum);
    return 0;
}

出力:

Value of sum : 108

算術変換の階層

C 標準は、文字昇格後にオペランドが異なる場合、以下のチャートの上位にある型に変換される階層を定義しています:

C 言語の型キャスト: 暗黙的・明示的変換をコード例でマスター
Arithmetic Conversion Hierarchy

例:

#include <stdio.h>
int main() {
    int num = 13;
    char c = 'k'; /* 107 */
    float sum = num + c;
    printf("sum = %f\n", sum);
    return 0;
}

出力:

sum = 120.000000

ここでは c がまず int に昇格し、その後両オペランドが float になってから加算されます。

暗黙的変換の重要ポイント

明示的型キャスト

明示的キャストは、コンパイラが自動実行しない変換を強制します。小数部を切り捨てたり、無関係な型間で変換したりする際に必須です。

構文はシンプル:

(type-name) expression

通常なら切り捨てられる除算で精度を保つ明示的キャスト例:

#include <stdio.h>
int main() {
    int var1 = 10, var2 = 3;
    int result = var1 / var2; // 3、小数部失われる
    int result2 = (int)((float)var1 / var2); // 3.333… を int にキャスト → 3
    printf("result = %d\n", result);
    printf("result2 = %d\n", result2);
    return 0;
}

無関係な型間の変換にも明示的キャストが有用:

#include <stdio.h>
int main() {
    float a = 1.2;
    int b = (int)a + 1; // float を int にキャスト
    printf("Value of a is %f\n", a);
    printf("Value of b is %d\n", b);
    return 0;
}

出力:

Value of a is 1.200000
Value of b is 2

C 言語の型キャスト: 暗黙的・明示的変換をコード例でマスター

まとめ

ベストプラクティス ガイドライン

C言語

  1. 「信頼性のインターネット」におけるデータ活用:効果的管理のための戦略
  2. C#型変換完全ガイド:暗黙・明示的変換、Parse、Convertクラス
  3. C++型変換完全ガイド:暗黙・明示変換とキャスト技法
  4. C++ switch文をマスター:構文、使い方、実践例
  5. C++ char型をマスター:宣言、ASCII、変換テクニック
  6. C++構造体を実例で徹底解説
  7. C++のstd::listをマスターする:構文、関数、実践例
  8. C#データ型完全ガイド:値型、参照型、ポインタ型
  9. C#の型変換:暗黙的・明示的キャストを徹底解説
  10. Python 型変換とキャスト: 包括的ガイド
  11. Java型キャスト完全ガイド:拡大変換から縮小変換まで