1학년 대학 수업/C++ 프로그래밍

C/C++ 리터럴의 대해

hawon6691 2025. 9. 11. 15:23
728x90

C와 C++에서 리터럴(literal)은 프로그램 코드 안에 직접 쓰여 있는 변하지 않는 값을 의미합니다. 변수와 달리 리터럴은 고정된 값 자체이며, 컴파일 시점에 이미 결정됩니다.


🔍 C/C++의 주요 리터럴 종류

리터럴 종류예시설명

정수 리터럴 42, 0x2A, 052 10진수, 16진수(0x), 8진수(0)
실수 리터럴 3.14, 2.5e3, 6.02E23 소수점 포함 숫자, 지수 표기법
문자 리터럴 'A', '\n', '%' 작은 따옴표로 묶인 단일 문자
문자열 리터럴 "Hello", "안녕\n세계" 큰 따옴표로 묶인 문자 배열 (char[])
부울 리터럴 true, false C++에서 사용, C는 _Bool 타입 필요
널 리터럴 NULL, nullptr 포인터가 아무것도 가리키지 않을 때
사용자 정의 리터럴 42_km, "hello"s C++11부터 도입된 확장 리터럴

🧠 리터럴 vs 상수

  • 리터럴: 코드에 직접 쓰인 값 (10, 'A', "Hello" 등)
  • 상수: 이름이 붙은 고정된 값 (const int MAX = 100;)

즉, 리터럴은 값 그 자체, 상수는 이름이 붙은 리터럴이라고 볼 수 있어요.


💡 C++ 사용자 정의 리터럴 (C++11 이후)

C++에서는 리터럴을 확장해서 단위나 타입을 명시적으로 표현할 수 있어요:

auto distance = 42.0_km;   // 사용자 정의 리터럴
std::string s = "hello"s;  // 문자열 리터럴에 std::string 타입 부여

이런 기능은 형식 안전성과 가독성을 높이는 데 유용합니다.

728x90