리터럴(literal)은 코드에 직접 작성되는 고정된 값을 의미합니다. 상수(constant)는 프로그램이 실행되는 동안 변경할 수 없는 고정값을 가리키며, 이러한 값들이 바로 리터럴입니다.
상수는 정수 상수, 부동 소수점 상수, 문자 상수, 문자열 리터럴처럼 기본 데이터 타입 중 어떤 것이든 될 수 있으며, 그 외에도 열거형(enum) 상수도 존재합니다.
이번 글에서는 C#에서 가장 많이 사용되는 정수 리터럴, 실수(부동 소수점) 리터럴, 문자열 리터럴에 대해 자세히 알아보겠습니다.
정수 리터럴(Integer Literals)
정수 리터럴은 10진수(decimal) 또는 16진수(hexadecimal) 상수로 표현할 수 있습니다. 진법은 접두사(prefix)로 구분하는데, 0x 또는 0X를 붙이면 16진수를 의미하고, 10진수에는 별도의 접두사를 사용하지 않습니다.
또한 숫자 뒤에 접미사(suffix)를 붙여 자료형을 명확히 지정할 수도 있습니다.
212 /* int */ 215u /* unsigned int */ 0xFEEL /* long (16진수) */
주요 접미사는 다음과 같습니다.
- u 또는 U: unsigned int (부호 없는 정수)
- l 또는 L: long (64비트 정수)
- ul 또는 UL: unsigned long
실수 리터럴(Float Literals)
부동 소수점 리터럴은 정수부, 소수점(.), 소수부, 지수부로 구성됩니다. 실수 리터럴은 10진수 형태 또는 지수(exponential) 형태 두 가지 방식으로 표현할 수 있습니다.
3.14159 /* 10진수 형태 */ 314159E-5F /* 지수 형태 */
지수 형태에서 E 또는 e는 10의 거듭제곱을 나타내며, 위 예제에서 314159E-5F는 314159 × 10⁻⁵와 같은 값을 의미합니다. 접미사 F는 float 타입임을 명시합니다.
문자열 리터럴(String Literals)
문자열 리터럴 또는 문자열 상수는 큰따옴표("")로 감싸서 표현하며, 앞에 @를 붙인 축자(verbatim) 문자열 형식인 @""도 사용할 수 있습니다.
문자열 내부에는 일반 문자, 이스케이프 시퀀스(escape sequence), 유니코드 문자 등 문자 리터럴과 유사한 요소들이 포함될 수 있습니다.
"Hello, World" "Welcome, \t C# Programming" @"C:\Users\Documents"
특히 @가 붙은 축자 문자열은 이스케이프 시퀀스를 해석하지 않고 그대로 출력하기 때문에, 파일 경로나 정규 표현식을 작성할 때 매우 유용합니다.
마무리
리터럴은 C# 프로그래밍의 가장 기본적인 요소로, 변수에 값을 할당하거나 연산을 수행할 때 항상 사용됩니다. 정수·실수·문자열 리터럴의 표기법과 접두사·접미사 규칙을 정확히 이해해 두면 더 안전하고 가독성 높은 코드를 작성할 수 있습니다.