Programming/C++ Basic
C++ 형변환
Gyong_
2020. 8. 18. 14:37
형 변환
-> 서로 다른 타입간의 변환
묵시적 형 변환
-> 사용자가 의도하지 않아도 컴파일러가 자동으로 변환해주는 것
명시적 형 변환
-> 사용자가 의도한 형 변환
형 변환 규칙
#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가 나온다.