Computer >> Máy Tính >  >> Lập trình >> lập trình C

Chuyển đổi kiểu ẩn và rõ ràng trong ngôn ngữ C là gì?

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;

Chuyển đổi kiểu ẩn và rõ ràng trong ngôn ngữ C là gì?

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