형 변환

-> 서로 다른 타입간의 변환

 

묵시적 형 변환

-> 사용자가 의도하지 않아도 컴파일러가 자동으로 변환해주는 것

 

명시적 형 변환

-> 사용자가 의도한 형 변환

 

형 변환 규칙

#1 대입 연산자 기준

-> 대입 연산자 기준으로 좌측 자료형으로 형 변환이 발생한다.

 

묵시적 형 변환

int i = 3.14;
// double형 3.14라는 데이터가 int형 3이라는 정수로 형 변환되서 a에 대입된다.

double b = 3;
// int형 3이라는 데이터가 double형 3.0으로 형 변환되서 b에 대입된다.

명시적 형 변환

int a = (int)3.14;
int a = int(3.14);

#2 산술 연산 시 기준 (묵시적 형 변환)

 

정수 대 실수

-> 실수 형으로 형 변환

-> cout << (3 * 3.1) << endl;

-> 9.3

 

같은 타입, 크기가 다를 경우

-> 크기가 큰 쪽으로 형 변환

예)

int a = 3; (4byte)

long long b = 20; (8byte)

타입이 같고 크기가 다르기 때문에 8byte가 나온다.

 

float a = 3.14f; (4byte)

long long b = 20; (8byte)

cout << sizeof(a + b) << endl;

타입이 다르기 때문에 4byte가 나온다.

+ Recent posts