66. C++ 문자열 리터럴

66. C++ 문자열 리터럴 ("abc")

1. 개요

1.1 문서 개요

이 문서는 C++에서 사용되는 문자열 리터럴("abc")에 대해 설명합니다. 문자열 리터럴은 컴파일 타임에 결정되는 상수 문자열 데이터이며, const char[] 타입으로 해석됩니다. 이는 C 스타일 문자열 처리에서 핵심적인 역할을 수행합니다.

2. 내용

2.1 문자열 리터럴의 정의와 타입

문자열 리터럴은 큰따옴표(")로 감싸인 문자들의 집합이며, null 문자 \0로 종료됩니다.

const char* str = "hello";

이 리터럴은 다음과 같은 배열로 메모리에 저장됩니다:

Index
0 h
1 e
2 l
3 l
4 o
5 \0

2.1.1 리터럴의 타입과 const

C++에서 문자열 리터럴은 const char[] 타입으로 간주되며, 수정이 불가능한 메모리 영역에 저장됩니다.

2.2 문자열 리터럴과 포인터

문자열 리터럴은 일반적으로 포인터를 통해 다루게 됩니다.

const char* s = "text";

이 방식은 std::string과는 다른 C 스타일의 문자열 처리에 해당합니다.

2.2.1 문자열 비교와 표준 함수

C 문자열 비교 시 == 연산자는 주소 비교이며, 문자열 비교는 strcmp를 사용합니다.

if (strcmp(s, "text") == 0) {
    // 문자열 내용이 동일함
}

2.3 다양한 문자열 리터럴 종류 (C++11 이후)

C++11 이후 다양한 종류의 문자열 리터럴이 도입되었습니다:

  • UTF-8 문자열: u8"abc"
  • UTF-16 문자열: u"abc"
  • UTF-32 문자열: U"abc"
  • 와이드 문자열: L"abc"

각 리터럴은 해당 인코딩에 맞는 문자형 배열로 저장됩니다.

3. 마무리

문자열 리터럴은 C++에서 고정된 문자열을 표현하는 방식으로, null 문자로 종료되며 수정이 불가능합니다. 다양한 인코딩 지원과 포인터 연산, 표준 문자열 함수와 함께 사용되며, 저수준 문자열 처리에 필수적인 구성 요소로 작동합니다.

댓글 달기

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

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