티스토리 뷰
크기는 windows 64비트 운영체제의 visual studio 내에서 sizeof 함수로 확인한 크기입니다.
unsigned: 기호(sign)가 없는 - 양수만 표현
signed: 기호(sign)가 있는 - 양수, 음수를 표현
signed는 생략될 수 있음.signed int=int
정수형 자료형
| 타입 | 크기 | 범위 |
|---|---|---|
| char | 1 byte | unsigned char: 0 ~ 255, signed char: -128 ~ 127 |
| short | 2 byte | unsigned, signed |
| int | 4 byte | unsigned, signed |
| long | 4 byte | - |
| long long | 8 byte | unsigned, signed |
실수형 자료형
| 타입 | 크기 | 범위 |
|---|---|---|
| float | 4 byte | |
| double | 8 byte |
// 소수는 기본적으로 double 형이 되기 때문에 float 형과 구분하기 위해
// 뒤에 f 를 붙인다.
sizeof(1.231); // 8
float a = 3.141592f;
double b = 3.141592;
sizeof(a + 1.1); // 8 (산술 변환됨)
float c = 3.14;
sizeof(c); // 4 <-- 단순 할당의 경우 필수는 아님.
기본적으로 소수 문자는 double 타입이다.
소수 뒤에 f 를 붙이는 이유는 컴파일러에게 숫자가 float타입임을 명시하기 위함이다.
float 변수에 단순 할당하는 경우 반드시 요구되진 않으나 명확하게 하기 위해 사용된다.
산술 변환(usual arithmetic conversion)
자료형이 다른 두 변수를 연산 할 때, 컴파일러가 연산 내 존재하는 크기가 큰 자료형으로 자료형들을 바꾸는 작업
- 연산에 실수 자료형이 있다면 다른 모든 자료형들이 연산 내 존재하는 가장 큰 실수 자료형 타입으로 변환된다.(
long double→double→float) - 연산에 실수 자료형이 없고 정수 자료형만 있다면 모든 자료형들이 연산 내 가장 큰 자료형 타입으로 변환된다.(
unsigned long→long→unsigned int→int)
int보다 작은 타입들(char, short) 같은 경우 int로 변환된다.
char a = 1.1;
short b = 1;
sizeof(a + b); // 4
산술 변환 참고: https://learn.microsoft.com/en-us/cpp/c-language/usual-arithmetic-conversions?view=msvc-170
