C語言教學10 - 型別轉換

撰寫於2018年9月

現代C語言小心得

隱性轉型

整數和整數間,浮點數和浮點數之間,都可以直接轉換型態,但是會有精度以容量的問題。

int main() { long int l = 20L; int i = 3; float f = 3.2f; double d = 5.4; l = i; // (O) i = l; // (O) f = d; // (O) d = f; // (O) }

浮點數和整數之間也可以隱性轉型。

int main() { long int l = 20L; int i = 3; float f = 3.2f; double d = 5.4; l = f; // (O) 會無條件捨去 i = d; // (O) 會無條件捨去 f = i; // (O) d = l; // (O) }

強制轉型 Casting

假如對隱性轉型方式不滿意,或是不同型別無法隱性轉型時,可以使用強制轉型。
用法:
(型別)東西

int main() { long int l = 20L; int i = 3; float f = 3.2f; double d = 5.4; printf("%d, %f, %ld", (int)d, (float)i, (long int)f); }
Select a repo