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 클래스기에, 컴파일 시간에 연산을 수행하는데 사용 가능

'공부 > C++' 카테고리의 다른 글

decltype  (0) 2025.03.26
추상 클래스  (0) 2025.03.15
참조자(&)  (0) 2025.03.14
템플릿(Template)  (0) 2025.03.08
상속  (0) 2025.03.07

+ Recent posts

let textNodes = document.querySelectorAll("div.tt_article_useless_p_margin.contents_style > *:not(figure):not(pre)"); textNodes.forEach(function(a) { a.innerHTML = a.innerHTML.replace(/`(.*?)`/g, '$1'); });