프로그래밍언어/C++

[C++] 2. 기초 정리(2) - 리터럴, 변수, 자료형

dan2el 2022. 6. 10. 22:20

1. 리터럴(Literal)

리터럴은 코드에 표시한 숫자, 스트링과 같은 값을 의미한다.

1-1. 리터럴 종류

  1. 십진수 리터럴 : 123
  2. 8진수 리터럴 : 0173
  3. 16진수 리터럴 : 0x7B
  4. 이진수 리터럴 ; 0b111011
  5. 부동소수점 값 : 3.14f
  6. 배정도 부동소수점 값 : 3.14
  7. 단일 문자 : 'a'
  8. '0'으로 끝나는 문자 배열 : "Hello World!"

1-2. 숫자 리터럴에서 자릿수 구분자 사용 방법

자리수 구분자는 작은따옴표(')로 표현한다.

  • 23'456'789
  • 0.123'456f

2. 변수


  1. C++에서 변수는 코드 안의 어디에서나 선언할 수 있다!
  2. 변수를 선언할 때는 꼭 초기화를 하자! (선언과 동시에 초기화를 하자.)
    • 초기화를 하지 않으면 쓰레기 값이 변수에 들어있기 때문이다.
    • 버그를 발생시키는 원인 중의 하나다.

변수 선언 예시

// 문자형
char ch = 'm';
char16_t c16 = u'm';
char32_t c32 = U'm';
wchar_t w = L'm';

// 정수형
bool b = true;
int i = -1;
signed int i = -5;
signed i = -5;
short s = 1;
short int s = 14;
signed short s = 20;
signed short int s = 16;
long l = -7L;
long long ll = 14LL;
unsigned int i = 2U;
unsigned j = 5U;
unsigned short s = 23U;
unsiged long l = 5400UL;
unsiged long long ll = 140ULL;

// 실수형
float f = 7.2f;
double d = 7.2;
long double d = 15.36L;

// 바이트형
std::byte b{45};

3. 자료형

  1. OS, 컴파일러에 따라 자료형의 크기가 조금씩 다르다!
         
구분 타입 설명 범위 크기
(byte)
기본형 void 자료형이 없음   1
문자형 char 단일 문자 -128 ~ 127 1
unsigned char 0 ~ 255 1
char16_t 16비트 단일 문자    
char32_t 32비트 단일 문자    
wchar_t 단일 확장(single wide)문자. 크기는 컴파일러마다 다르므로 해당 범위는 참고만 하기.

0 ~ 65,535
2
정수형 bool true (1) / false (0) 중 하나를 값으로 가진다. 0 ~ 1 1
int 부호가 있는 정수 -2,147,483,648
~ 2,147,483,647
4
short 작은 범위의 정수 -32,768 ~ 32,767 2
long 큰 범위의 정수 -2,147,483,648
~ 2,147,483,647
4
long long 아주 큰 범위의 정수. 컴파일러마다 구체적인 범위가 다르므로 참고만 하기.

-9,223,372,036,854,775,808
~ 9,223,372,036,854,775,807
8
unsigned (int) 0 이상의 정수들 0 ~ 4,294,967,295 4
unsigned short   4
unsigned long 0 ~ 4,294,967,295 4
unsigned long long 0 ~ 18,446,744,073,709,551,615 8
실수형 float 부동소수점수 3.4E+/-38(7개의 자릿수) 4
double 부동소수점수   8
long double 부동소수점수   8
바이트형 std::byte 1 바이트를 표현한다.
C++17에 추가된 자료형.
  1

 

 

 

OS별(16bit/32bit/64bit) 크기


  1.   int는 시스템의 기본연산 단위를 사용한다.
    • 16bit - 2byte
    • 32 - 4byte
    • 64 - 4byte
  2.   64bit에서 long형을 8byte로 확장하였다.
    • 16bit - 4byte
    • 32 - 4byte
    • 64 - 8byte