Cキャスト
強制とは、変数をある型から別のデータ型に変換することです。たとえば、long 値を単純な整数に格納する場合は、long を int にキャストする必要があります。以下に示すように、キャスト演算子を使用して、値をある型から別の型に明示的に変換できます:
(type_name) expression
キャスト演算子を使用して整数変数を変換する次の例を参照してください。 別の整数変数で除算して浮動小数点を取得します。数値:
#include <stdio.h>main(){ int sum = 17, count = 5; double mean; mean = (double) sum / count; printf("Value of mean : %f\n", mean );}
上記のコードをコンパイルして実行すると、次の結果が生成されます:
Value of mean : 3.400000
ここで注意すべきことは、キャスト演算子は除算よりも優先されるため、sumの値が最初に変換されます。 double と入力し、count で除算すると、double 型の値が得られます。
型変換は、コンパイラによって自動的に実行される暗黙的な変換、または cast 演算子を使用して指定される明示的な変換が可能です。プログラミングするときは、型変換が必要な場合は常に Cast 演算子を使用するのが良いプログラミング習慣です。
整数プロモーション
整数プロモーションとは、intまたはunsigned intより小さい整数型をintまたはunsigned intに変換するプロセスを指します。 int に文字を追加する以下の例を参照してください:
#include <stdio.h>main(){ int i = 17; char c = 'c'; /* ascii 值是 99 */ int sum; sum = i + c; printf("Value of sum : %d\n", sum );}
上記のコードがコンパイルされて実行されると、次の結果が生成されます:
Value of sum : 116
ここで、コンパイラーは整数の Boost を取るため、sum の値は 116 になります。実際の加算演算を実行すると、「c」の値が対応する ASCII 値に変換されます。
一般的に使用される算術変換
一般的に使用される算術変換は、値を暗黙的に同じ型に強制します。コンパイラーは最初に整数昇格を実行し、オペランドの型が異なる場合は、次の階層にある最上位の型に変換されます:
一般的な算術変換は、代入演算子、論理演算子 && および | には適用されません。 |。この概念を理解するために、次の例を見てみましょう:
#include <stdio.h>main(){ int i = 17; char c = 'c'; /* ascii 值是 99 */ float sum; sum = i + c; printf("Value of sum : %f\n", sum );}
上記のコードをコンパイルして実行すると、次の結果が生成されます:
Value of sum : 116.000000
ここで、c は最初に整数に変換されますが、最終的な値は Double 型であるため、したがって、通常の算術変換が適用され、コンパイラは i と c を浮動小数点型に変換し、それらを加算して浮動小数点数を取得します。