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*/
}

명시적 유형 변환

  • 명시적 유형 변환은 사용자가 (유형) 연산자를 사용하여 수행합니다.

  • 변환이 수행되기 전에 대상 유형이 소스 값을 보유할 수 있는지 확인하기 위해 런타임 검사가 수행됩니다.

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