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
廣告