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

C言語の型キャストと変換をマスターする

あるデータ型を別のデータ型に変換することを型キャストまたは型変換と呼びます。例えば、long型の値をint型変数に格納したい場合、longをintにキャストします。キャスト演算子を使って明示的に変換できます。

(型名) 式

以下の例では、キャスト演算子により整数変数同士の除算を浮動小数点演算として実行しています。

#include <stdio.h>
int main() {
    int sum = 17, count = 5;
    double mean;
    mean = (double) sum / count;
    printf("Value of mean : %f\n", mean);
    return 0;
}

実行結果:

Value of mean : 3.400000

キャスト演算子は除算より優先順位が高いため、sumの値がまずdouble型に変換され、その後countで除算され、結果はdouble型になります。

型変換はコンパイラが自動で行う暗黙の変換と、キャスト演算子で指定する明示的な変換があります。型変換が必要な場合は、キャスト演算子を明示的に使うのが良いプログラミング習慣とされます。

整数拡張

整数拡張とは、intやunsigned intより「小さい」整数型の値が、intまたはunsigned intに変換されるプロセスです。文字と整数の加算例を見てみましょう。

#include <stdio.h>
int main() {
    int i = 17;
    char c = 'c';  /* ASCII値は99 */
    int sum;
    sum = i + c;
    printf("Value of sum : %d\n", sum);
    return 0;
}

実行結果:

Value of sum : 116

sumが116になるのは、コンパイラが整数拡張を行い、cの値をASCIIコード99に変換してから加算するためです。

通常の算術変換

通常の算術変換は、オペランドの値を共通の型に暗黙的にキャストするために実行されます。コンパイラはまず整数拡張を行い、それでもオペランドの型が異なる場合、以下の階層で最も上位にある型に変換します。

C言語の型キャストと変換をマスターする

通常の算術変換は、代入演算子や論理演算子&&、||には適用されません。以下の例で理解を深めましょう。

#include <stdio.h>
int main() {
    int i = 17;
    char c = 'c';  /* ASCII値は99 */
    float sum;
    sum = i + c;
    printf("Value of sum : %f\n", sum);
    return 0;
}

実行結果:

Value of sum : 116.000000

まずcが整数に変換されますが、最終結果がdouble(ここではfloatに代入されるためfloat)になるため、通常の算術変換が適用され、iとcがfloatに変換されて加算され、floatの結果が得られます。

C言語

  1. 精密鋳造完全ガイド:技術と用途
  2. ダイカスト解説:精度、効率、生産メリット
  3. C#型変換完全ガイド:暗黙・明示的変換、Parse、Convertクラス
  4. C++ char型をマスター:宣言、ASCII、変換テクニック
  5. C++変数タイプ完全解説:メモリ、制限、操作
  6. C#データ型完全ガイド:値型、参照型、ポインタ型
  7. C#の型変換:暗黙的・明示的キャストを徹底解説
  8. C#のヌル許容型:null値を安全に扱う完全ガイド
  9. C#属性:メタデータでコードを拡張する完全ガイド
  10. Python 型変換とキャスト: 包括的ガイド
  11. Java型キャスト完全ガイド:拡大変換から縮小変換まで