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
'1학년 대학 수업 > C++ 프로그래밍' 카테고리의 다른 글
null과 0의 차이 (0) | 2025.09.11 |
---|---|
이스케이프 시퀀스를 사용하는 프로그래밍 언어 (0) | 2025.09.11 |
C/C++ 과 다른 언어의 예약어 비교 (0) | 2025.09.11 |
C/C++ 예약어 순위 (0) | 2025.09.11 |
scanf 함수 오류 (0) | 2025.09.11 |