Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

การแปลงประเภทโดยนัยและชัดเจนในภาษา C คืออะไร


การแปลงข้อมูลประเภทหนึ่งเป็นประเภทข้อมูลอื่นเรียกว่าการแปลงประเภท

  • การแปลงประเภทโดยนัย
  • การแปลงประเภทที่ชัดเจน

การแปลงประเภทโดยนัย

  • คอมไพเลอร์ให้การแปลงประเภทโดยนัยเมื่อตัวถูกดำเนินการเป็นประเภทข้อมูลที่แตกต่างกัน

  • คอมไพเลอร์จะทำโดยอัตโนมัติโดยแปลงประเภทข้อมูลขนาดเล็กลงเป็นประเภทข้อมูลที่ใหญ่ขึ้น

int i,x;
float f;
double d;
long int l;

การแปลงประเภทโดยนัยและชัดเจนในภาษา C คืออะไร

ในที่สุด นิพจน์ข้างต้นจะประเมินเป็นค่า 'สองเท่า'

ตัวอย่าง

ต่อไปนี้เป็นตัวอย่างสำหรับการแปลงประเภทโดยนัย -

int x;
for(x=97; x<=122; x++){
   printf("%c", x); /*Implicit casting from int to char %c*/
}

การแปลงประเภทที่ชัดเจน

  • การแปลงประเภทที่ชัดเจนทำได้โดยผู้ใช้โดยใช้ตัวดำเนินการ (type)

  • ก่อนทำการแปลง จะมีการตรวจสอบรันไทม์เพื่อดูว่าประเภทปลายทางสามารถเก็บค่าต้นทางได้หรือไม่

int a,c;
float b;
c = (int) a + b

ที่นี่ผลลัพธ์ของ 'a+b' จะถูกแปลงเป็น 'int' อย่างชัดเจนแล้วกำหนดเป็น 'c'

ตัวอย่าง

ต่อไปนี้เป็นตัวอย่างสำหรับการแปลงประเภทที่ชัดเจน -

int x;
for(x=97; x<=122; x++){
   printf("%c", (char)x); /*Explicit casting from int to char*/
}

ให้เราดูความแตกต่างระหว่างการแปลงทั้งสองประเภทพร้อมตัวอย่าง -

ตัวอย่าง (การแปลงโดยนัย)

#include<stdio.h>
main(){
   int i=40;
   float a;
   //Implicit conversion
   a=i;
   printf("implicit value:%f\n",a);
}

ผลลัพธ์

Implicit value:40.000000

ตัวอย่าง (การแปลงที่ชัดเจน)

#include<stdio.h>
main(){
   int i=40;
   short a;
   //Explicit conversion
   a=(short)i;
   printf("explicit value:%d\n",a);
}

ผลลัพธ์

Explicit value:40