15. C++ 리터럴

C++ 리터럴 표기 (0x, 0b, 1.0f, 'a', true)

1. 개요

1.1 문서 개요

이 문서는 C++에서 사용되는 리터럴 표기 방식에 관해 기록하는 문서입니다. 리터럴(literal)은 코드 내에서 고정된 값을 나타내는 표현으로, 변수에 대입되거나 연산에 사용됩니다. C++ 언어는 다양한 타입의 리터럴을 지원하며, 이 문서는 주요 리터럴의 종류와 표기법에 대해 정리합니다.

2. 내용

2.1 정수 리터럴 (Integer Literals)

정수 리터럴은 정수형 값을 나타내며, 진법에 따라 다음과 같이 구분됩니다.

2.1.1 10진수, 8진수, 16진수, 2진수

  • 10진수: 기본 형식. 예: 42, 1000
  • 8진수: 0으로 시작. 예: 0755 (10진수 493)
  • 16진수: 0x 또는 0X 접두사 사용. 예: 0xFF, 0x1A3F
  • 2진수: C++14부터 지원, 0b 또는 0B 접두사 사용. 예: 0b1010 (10진수 10)
2.1.1.1 예제
int a = 42;       // 10진수
int b = 0755;     // 8진수
int c = 0xFF;     // 16진수
int d = 0b1010;   // 2진수

2.1.2 부호 및 크기 접미사

정수 리터럴은 접미사를 통해 타입을 명시할 수 있습니다.

  • u 또는 U: unsigned
  • l 또는 L: long
  • ll 또는 LL: long long
2.1.2.1 예제
unsigned int x = 100u;
long y = 100L;
unsigned long long z = 100ULL;

2.2 부동소수점 리터럴 (Floating-Point Literals)

부동소수점 리터럴은 실수를 표현하며, 소수점 또는 지수 표기법을 사용합니다.

2.2.1 기본 표기법

  • 기본적으로 double 타입으로 간주됩니다.
  • f 또는 F: float
  • l 또는 L: long double
2.2.1.1 예제
double a = 3.14;
float b = 3.14f;
long double c = 3.14L;
double d = 1.5e2; // 150.0

2.3 문자 리터럴 (Character Literals)

문자 리터럴은 '로 감싸진 단일 문자를 나타냅니다.

2.3.1 문자 리터럴 예제

char a = 'a';
char b = '\n'; // 이스케이프 문자

2.3.2 유니코드 문자

C++11부터 유니코드 문자 리터럴 지원

  • u'문자': UTF-16
  • U'문자': UTF-32
  • L'문자': 와이드 문자
char16_t c = u'한';
char32_t d = U'漢';
wchar_t e = L'字';

2.4 문자열 리터럴 (String Literals)

문자열 리터럴은 "로 감싸진 텍스트로 구성됩니다.

2.4.1 기본 및 유니코드 문자열

  • "Hello": 기본 const char*
  • u"Hello": UTF-16
  • U"Hello": UTF-32
  • L"Hello": 와이드 문자열
const char* a = "Hello";
const char16_t* b = u"Hello";
const char32_t* c = U"Hello";
const wchar_t* d = L"Hello";

2.4.2 Raw 문자열 (C++11)

R"(내용)" 형식으로, 이스케이프 없이 문자열 그대로 표현

const char* path = R"(C:\Users\Name)";

2.5 불리언 리터럴 (Boolean Literals)

truefalse 두 가지 값만 가질 수 있으며, bool 타입으로 사용됩니다.

bool a = true;
bool b = false;

2.6 널 포인터 리터럴 (nullptr)

C++11부터 nullptr 키워드가 도입되어, 포인터가 아무 객체도 가리키지 않음을 명확하게 표현합니다.

int* ptr = nullptr;

3. 마무리

이 문서는 C++에서 사용되는 다양한 리터럴 표기법을 진법, 데이터 유형, 문자와 문자열, 불리언, 널 포인터 등으로 구분하여 정리하였습니다. 각각의 리터럴은 코드의 가독성과 명확성을 높이는 데 중요한 요소이며, 리터럴의 종류에 따라 해당 타입과 동작이 달라지므로 적절한 표기 사용이 요구됩니다.

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

error: Content is protected !!
위로 스크롤