본문 바로가기

프로그래밍 언어/C

C언어 리터럴의 종류와 사용법, 코드에서의 데이터 정의

C언어 리터럴의 종류와 사용법, 코드에서의 데이터 정의

C 언어에서 리터럴(Literal)은 프로그램 안에서 값 그 자체를 나타내는 데이터입니다. 변수 없이도 직접 사용할 수 있고, 컴파일러에 의해 고정된 값으로 처리되며, 프로그램의 의미를 보다 명확하게 전달하는 핵심적인 요소입니다. 이 문서에서는 C 언어에서 사용되는 다양한 리터럴의 유형과 그 정확한 사용법 및 주의점을 풍부한 예제와 함께 상세히 설명합니다.

 

 

목차

  1. 리터럴이란 무엇인가?
  2. 정수형 리터럴 (Integer Literal)
  3. 실수형 리터럴 (Floating-point Literal)
  4. 문자형 리터럴 (Character Literal)
  5. 문자열 리터럴 (String Literal)
  6. 이스케이프 시퀀스와 리터럴
  7. 리터럴 사용 시 주의사항 및 모범 사례

 

1. 리터럴이란 무엇인가?

리터럴(literal)은 C 프로그램 내에서 변경되지 않는 상수값을 의미합니다. 변수와는 달리 메모리에 고정된 값으로 존재하며, 프로그램 내의 의미를 보다 명확하게 전달합니다.

예시:

int x = 10;  // 여기서 10이 리터럴
  • 고정된 값으로 사용됨
  • 타입에 따라 분류됨 (정수, 실수, 문자 등)
  • 초기화나 조건 비교 등 다양한 곳에서 활용

 

 

 

2. 정수형 리터럴 (Integer Literal)

정수형 리터럴은 정수 값을 표현합니다. 기본적으로 10진수지만 다른 진수도 사용 가능합니다.

형식 예시 설명
10진수 42 기본 정수형 표현
8진수 052 0으로 시작하는 수 (8진수)
16진수 0x2A 0x 또는 0X로 시작 (16진수)

Tip: 정수형 리터럴은 후위 접미사 U, L, UL을 통해 자료형을 명시적으로 설정할 수 있습니다.

 

 

 

3. 실수형 리터럴 (Floating-point Literal)

소수점이 있는 숫자 또는 지수 형태로 표현됩니다.

  • 10.5, -3.14, 2.0e3 등의 형태
  • 기본적으로 double 타입
  • 접미사 f 또는 F를 사용하면 float 리터럴
float pi = 3.14f;
double big = 1.23e6;

 

 

 

4. 문자형 리터럴 (Character Literal)

작은 따옴표 ' '로 감싸서 표현합니다. 내부적으로는 ASCII 코드값으로 저장됩니다.

char ch = 'A'; // 65로 저장됨

문자형 리터럴은 다음 특성을 가집니다:

  • 한 글자만 허용
  • 이스케이프 문자를 포함할 수 있음
  • 정수처럼 연산 가능

 

 

 

 

5. 문자열 리터럴 (String Literal)

큰 따옴표 " "로 감싸서 여러 문자들을 문자 배열로 나타냅니다.

char *msg = "Hello, world!";

문자열 리터럴은 널 문자('\0')로 자동 종료되며, 상수로 취급되어 변경할 수 없습니다.

 

 

 

6. 이스케이프 시퀀스와 리터럴

이스케이프 시퀀스는 문자나 문자열 리터럴 안에서 특수 기능을 수행하는 문자입니다.

  • \n : 줄 바꿈
  • \t : 탭
  • \\ : 백슬래시
  • \" : 큰따옴표
printf("Hello\nWorld");

 

 

 

7. 리터럴 사용 시 주의사항 및 모범 사례

  • 매직 넘버(Magic Number)를 피하고 의미 있는 매크로나 상수 사용
  • 정확한 자료형에 맞는 리터럴 작성 (예: float에는 접미사 f)
  • 문자열은 const로 선언하여 의도치 않은 변경 방지

예를 들어 다음과 같이 사용하는 것이 좋습니다:

#define PI 3.141592f
const char *greeting = "Welcome";