C語言中的隱式和顯式型別轉換是什麼?


將一種資料型別轉換為另一種資料型別稱為型別轉換

  • 隱式型別轉換
  • 顯式型別轉換

隱式型別轉換

  • 當運算元的資料型別不同時,編譯器會提供隱式型別轉換。

  • 它由編譯器自動完成,即將較小的資料型別轉換為較大的資料型別。

int i,x;
float f;
double d;
long int l;

這裡,上述表示式最終計算結果為“double”值。

示例

以下是隱式型別轉換的示例:

int x;
for(x=97; x<=122; x++){
   printf("%c", x); /*Implicit casting from int to char %c*/
}

顯式型別轉換

  • 顯式型別轉換是由使用者使用(type)運算子完成的。

  • 在執行轉換之前,會進行執行時檢查以檢視目標型別是否可以容納源值。

int a,c;
float b;
c = (int) a + b

這裡,'a+b'的結果顯式轉換為'int',然後賦值給'c'。

示例

以下是顯式型別轉換的示例:

int x;
for(x=97; x<=122; x++){
   printf("%c", (char)x); /*Explicit casting from int to char*/
}

讓我們透過示例瞭解這兩種轉換型別的區別:

示例(隱式轉換)

 線上演示

#include<stdio.h>
main(){
   int i=40;
   float a;
   //Implicit conversion
   a=i;
   printf("implicit value:%f
",a); }

輸出

Implicit value:40.000000

示例(顯式轉換)

 線上演示

#include<stdio.h>
main(){
   int i=40;
   short a;
   //Explicit conversion
   a=(short)i;
   printf("explicit value:%d
",a); }

輸出

Explicit value:40

更新於:2023年10月22日

29K+ 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告