整數和整數間,浮點數和浮點數之間,都可以直接轉換型態,但是會有精度以容量的問題。
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)
}
假如對隱性轉型方式不滿意,或是不同型別無法隱性轉型時,可以使用強制轉型。
用法:
(型別)東西
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);
}