C での型キャスト:型変換、暗黙的、例による明示的
C の型キャストとは
型キャストは、あるデータ型を別のデータ型に変換することです。 C言語ではデータ変換や型変換とも呼ばれます。これは、「C」プログラミングで導入された重要な概念の 1 つです。
「C」プログラミングでは、2 種類の型キャスト操作が提供されます。
<オール>暗黙の型キャスト
暗黙的な型キャストとは、元の意味を失わずにデータ型を変換することを意味します。このタイプの型キャストは、せずにデータ型を変更したい場合に不可欠です。 変数内に格納された値の意味を変更します。
C での暗黙的な型変換は、値が互換性のあるデータ型にコピーされるときに自動的に行われます。変換中、型変換の厳密な規則が適用されます。オペランドが 2 つの異なるデータ型である場合、下位のデータ型を持つオペランドが上位のデータ型に自動的に変換されます。このタイプの型変換は、次の例で見ることができます。
#include<stdio.h> int main(){ short a=10; //initializing variable of short data type int b; //declaring int variable b=a; //implicit type casting printf("%d\n",a); printf("%d\n",b); }
出力:
10 10
<オール>
文字を Int に変換する
ASCII でデコードされた文字を整数で追加する例を考えてみましょう:
#include <stdio.h> main() { int number = 1; char character = 'k'; /*ASCII value is 107 */ int sum; sum = number + character; printf("Value of sum : %d\n", sum ); }
出力:
Value of sum : 108
ここで、コンパイラは、実際の加算操作を実行する前に、'k' の値を ASCII に変換することにより、整数昇格を行いました。
算術変換階層
コンパイラは、最初に文字を整数に昇格させます。オペランドのデータ型が異なる場合は、次の階層図に示されている最上位のデータ型に変換されます:
<センター>
<図>算術変換階層
フィギュア>センター>
概念を理解するには、次の例を検討してください:
#include <stdio.h> main() { int num = 13; char c = 'k'; /* ASCII value is 107 */ float sum; sum = num + c; printf("sum = %f\n", sum );}
出力:
sum = 120.000000
まず、c 変数は整数に変換されますが、コンパイラは num を変換します。 とc "float" に変換し、それらを追加して "float" の結果を生成します。
暗黙の変換に関する重要なポイント
- 型変換の暗黙的な型は、標準型変換とも呼ばれます。暗黙的な型キャストでは、キーワードや特別なステートメントは必要ありません。
- 小さいデータ型から大きいデータ型への変換は、型昇格とも呼ばれます .上記の例では、s の値が整数型に昇格されているとも言えます。
- 暗黙の型変換は、常に互換性のあるデータ型で行われます。
次のような相互に互換性のないデータ型に対して暗黙的な型キャストを実行することはできません:
<オール>上記のすべてのケースで、データ型を変換すると、値の意味が失われます。通常、値の意味が失われると、コンパイラによって警告されます。
「C」プログラミングは、明示的な型キャストである型キャストの別の方法を提供します。
明示的な型キャスト
暗黙的な型変換では、データ型は自動的に変換されます。型変換を強制しなければならないシナリオがいくつかあります。 int データ型として宣言された 2 つのオペランドの除算を格納する変数 div があるとします。
int result, var1=10, var2=3; result=var1/var2;
この場合、変数 var1 と var2 で実行された除算の後、変数 "result" に格納される結果は整数形式になります。これが発生すると、変数「result」に格納された値は意味を失います。これは、2 つの数値の除算で通常得られる小数部分が考慮されていないためです。
このような状況で型変換を強制するために、明示的な型キャストを使用します。
型キャスト演算子が必要です。型キャスト操作の一般的な構文は次のとおりです:
(type-name) expression
ここで、
- 型名は標準の「C」言語データ型です。
- 式は、定数、変数、または実際の式です。
明示的な型キャストを使用して C で型キャストする方法を示すプログラムを作成しましょう。
#include<stdio.h> int main() { float a = 1.2; //int b = a; //Compiler will throw an error for this int b = (int)a + 1; 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 の暗黙的型変換と明示的型変換の 2 種類があります。
- 互換性のあるデータ型が見つかると、暗黙的な型変換が自動的に実行されます。
- 明示的な型変換には、型キャスト演算子が必要です。
データの損失を防ぐために、異なるデータ型を扱うときは、次のプログラミング ルールに留意してください。
- 整数型は float に変換する必要があります。
- float 型は double に変換する必要があります。
- 文字型は整数に変換する必要があります。
C言語