C言語で強制型変換を行う方法

青灯夜游
青灯夜游オリジナル
2023-01-04 11:04:037432ブラウズ

C 言語では、「(type_name) 式」ステートメントを通じて強制的な型変換を実行できます。パラメータ「type_name」は、新しい型の名前を表します。たとえば、「(float)100」は、 int型の値100、float型です。強制型変換は、プログラマによって明示的に提案される型変換であり、特定の形式のコードを通じて指定する必要があります。プログラミングの際、型変換が必要な場合は必ず強制型変換演算子を使用することは、プログラミングの良い習慣です。

C言語で強制型変換を行う方法

#このチュートリアルの動作環境: Windows7 システム、C99 バージョン、Dell G3 コンピューター。

データ型変換とは、データ (変数、値、式の結果など) をある型から別の型に変換することです。

C 言語には 2 つのデータ型メソッドがあります:

  • 自動型変換: コンパイラによって暗黙的かつ秘密裏に実行されるデータ型変換です。プログラマの介入は必要なく、自動的に行われます。

  • 強制型変換

C 言語の強制型変換を詳しく見てみましょう。

強制型変換

自動型変換は、コードのコンテキストに基づいてコンパイラーが独自に判断した結果です。したがって、「インテリジェント」」だけではすべてのニーズを満たすことはできません。必要に応じて、プログラマはコード自体で型​​変換を明示的に提案することもできます。これは強制型変換と呼ばれます。

自動型変換は、コンパイラによってサイレントかつ暗黙的に実行される型変換であり、コードに反映する必要はありません。強制的な型変換はプログラマによって明示的に提案され、特定のコードで実行する必要があります。 format. 型変換を指定します。つまり、自動型変換にはプログラマの介入は必要ありませんが、強制的な型変換にはプログラマの介入が必要です。

強制型変換の形式は次のとおりです:

(type_name) expression

  • ##type_name

    は新しい型名です

  • expression

    は式です

  • 例:
(float) a;  //将变量 a 转换为 float 类型
(int)(x+y);  //把表达式 x+y 的结果转换为 int 整型
(float) 100;  //将数值 100(默认为int类型)转换为 float 类型

キャスト演算子を使用して整数変数を別の整数で除算する次の例を参照してください。変数、浮動小数点数を取得します:

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

C言語で強制型変換を行う方法 ここで、キャスト演算子の優先順位は除算よりも高いため、sum の値が最初に変換されることに注意してください。 double 型を計算し、count で除算して double 型の値を取得します。

型変換は、コンパイラによって自動的に実行される暗黙的な変換、またはキャスト演算子を使用して指定される明示的な変換が可能です。プログラミングするときは、型変換が必要な場合は常に Cast 演算子を使用するのが良いプログラミング習慣です。

型変換は一時的なものです 自動型変換であろうと強制型変換であろうと、この操作では一時的なものにすぎません。の場合、変換結果も一時メモリ領域に保存され、データの元の型や値は変更されません。次の例を見てください:

#include <stdio.h>
int main(){
    double total = 400.8;  //总价
    int count = 5;  //数目
    double unit;  //单价
    int total_int = (int)total;
    unit = total / count;
    printf("total=%lf, total_int=%d, unit=%lf\n", total, total_int, unit);
    return 0;
}

C言語で強制型変換を行う方法コードの 6 行目に注目してください。total 変数は total_int 変数に代入される前に int 型に変換されます。 total 変数自体の型と値には影響しません。合計の値が変わると合計の出力結果は400.000000となり、合計の種類が変わると単位の出力結果は80.000000となります。

拡張知識: 一般的に使用される算術変換一般的に使用される算術変換は、暗黙的に値を同じ型に強制します。コンパイラは最初に整数昇格を実行し、オペランドの型が異なる場合は、次の階層にある最上位の型に変換されます。

C言語で強制型変換を行う方法通常の算術変換は適用されません。代入演算子の場合は、論理演算子 && および ||。この概念を理解するために、次の例を見てみましょう。

#include <stdio.h>
 
int main()
{
   int  i = 17;
   char c = &#39;c&#39;; /* ascii 值是 99 */
   float sum;
 
   sum = i + c;
   printf("Value of sum : %f\n", sum );
 
}

上記のコードをコンパイルして実行すると、次の結果が生成されます。

Value of sum : 116.000000

ここでは、c は最初に整数に変換されますが、最終値は float 型であるため、通常の算術変換が適用され、コンパイラは i と c を浮動小数点型に変換し、それらを加算して浮動小数点数を取得します。

【関連する推奨事項:

C 言語ビデオ チュートリアル

プログラミング教育

以上がC言語で強制型変換を行う方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。