Việc chuyển đổi một kiểu dữ liệu thành một kiểu dữ liệu khác được gọi là chuyển đổi kiểu.
- Chuyển đổi kiểu ẩn
- Chuyển đổi loại rõ ràng
Chuyển đổi kiểu ngầm
-
Trình biên dịch cung cấp các chuyển đổi kiểu ngầm định khi các toán hạng thuộc các kiểu dữ liệu khác nhau.
-
Nó được trình biên dịch tự động thực hiện bằng cách chuyển đổi kiểu dữ liệu nhỏ hơn thành kiểu dữ liệu lớn hơn.
int i,x; float f; double d; long int l;
Tại đây, biểu thức trên cuối cùng được đánh giá thành giá trị "double".
Ví dụ
Sau đây là một ví dụ về chuyển đổi kiểu ngầm định -
int x; for(x=97; x<=122; x++){ printf("%c", x); /*Implicit casting from int to char %c*/ }
Chuyển đổi kiểu rõ ràng
-
Việc chuyển đổi kiểu rõ ràng được thực hiện bởi người dùng bằng cách sử dụng toán tử (type).
-
Trước khi thực hiện chuyển đổi, kiểm tra thời gian chạy sẽ được thực hiện để xem liệu loại đích có thể giữ giá trị nguồn hay không.
int a,c; float b; c = (int) a + b
Ở đây, kết quả của ‘a + b’ được chuyển đổi thành ‘int’ một cách rõ ràng và sau đó được gán cho ‘c’.
Ví dụ
Sau đây là một ví dụ về chuyển đổi kiểu rõ ràng -
int x; for(x=97; x<=122; x++){ printf("%c", (char)x); /*Explicit casting from int to char*/ }
Hãy để chúng tôi thấy sự khác biệt giữa hai loại chuyển đổi với các ví dụ -
Ví dụ (Chuyển đổi ngầm định)
#include<stdio.h> main(){ int i=40; float a; //Implicit conversion a=i; printf("implicit value:%f\n",a); }
Đầu ra
Implicit value:40.000000
Ví dụ (Chuyển đổi rõ ràng)
#include<stdio.h> main(){ int i=40; short a; //Explicit conversion a=(short)i; printf("explicit value:%d\n",a); }
Đầu ra
Explicit value:40