Chuyển đổi một kiểu dữ liệu sang kiểu khác gọi là chuyển đổi kiểu.
- Chuyển đổi ngầm (implicit)
- Chuyển đổi tường minh (explicit)
Chuyển đổi ngầm
Trình biên dịch cung cấp chuyển đổi ngầm khi toán hạng khác kiểu.
Tự động thực hiện bằng cách chuyển kiểu nhỏ sang kiểu lớn.
int i, x; float f; double d; long int l;

Biểu thức cuối cùng đánh giá thành giá trị 'double'.
Ví dụ
Ví dụ chuyển đổi ngầm:
int x;
for (x = 97; x <= 122; x++) {
printf("%c", x); /* Ép ngầm từ int sang char %c */
}
Chuyển đổi tường minh
Người dùng thực hiện bằng toán tử (kiểu).
Trước khi chuyển, kiểm tra runtime xem kiểu đích có chứa giá trị nguồn không.
int a, c; float b; c = (int) a + b
Ở đây, kết quả 'a+b' được chuyển thành 'int' tường minh rồi gán cho 'c'.
Ví dụ
Ví dụ chuyển đổi tường minh:
int x;
for (x = 97; x <= 122; x++) {
printf("%c", (char)x); /* Ép tường minh từ int sang char */
}
Xem sự khác biệt qua ví dụ:
Ví dụ (Chuyển đổi ngầm)
#include <stdio.h>
main() {
int i = 40;
float a;
// Chuyển đổi ngầm
a = i;
printf("Gia tri ngam: %f\n", a);
}
Kết quả
Gia tri ngam: 40.000000
Ví dụ (Chuyển đổi tường minh)
#include <stdio.h>
main() {
int i = 40;
short a;
// Chuyển đổi tường minh
a = (short)i;
printf("Gia tri tuong minh: %d\n", a);
}
Kết quả
Gia tri tuong minh: 40