RakunBear
2025. 3. 14. 10:03
2025. 3. 14. 10:03
string 리터럴
- 일반적으로
"abcd"
와 같이 작성하는 것을 말함
- 읽기 메모리에 저장되며, 같은 리터럴은 재사용됨
"abcd"
를 n 번 출력해도, 메모리에 저장된 것은 "abcd"
1개
char* pt {"hello"}
에서 요소를 변경하면, 컴파일러에 따라 결과값이 다를 수 있음
const char* pt {"hello"}
로 정의하여, 요소 변경을 금지 시켜야 함
- 이는 읽기 메모리에 값을 써야하기 때문
char pt[100] {"hello"}
와 같이 쓰면, 컴파일러가 읽기 메모리에 값을 저장x
로 스트링 리터럴(raw string literal)
const char* str {R"Hi, "amy""}
형태로 사용
- 내부에서
", \n
등의 문자를 별도 처리 없이 사용 가능
{R"abc(a()()b)abc"}
와 같이 쓰면, 괄호를 문제없이 출력 가능
"
,(
사이의 16자를 구분자로 사용 ( abc(
, )abc
)
와이드 스트링 리터럴(wide string literal)
- 유니코드를 포함한 모든 그래픽 리터럴을 사용가능
L"abcd"
와 같이 사용
- VS에서 Output 출력을 통해, 디버그를 할 때 주로 사용
- 로케일 지원에 용이
std::string
- c++20 부터는
constexpr
클래스기에, 컴파일 시간에 연산을 수행하는데 사용 가능