문자열 리터럴

manmarru·2025년 4월 27일

c++

목록 보기
19/24

소스 코드 내에서 직접 입력한 문자열

  • 읽기 전용 메모리 영역에 저장된다, 수정 못한다.
  • NULL 문자로 끝난다.
    "Hello" 는 'H' 'e' 'l' 'l' 'o' '\0' 인 셈.
  • 정적 메모리에 저장된다. 프로그램이 실행될 때 한 번만 메모리에 로드되고, 프로그램이 종료될 때까지 메모리에 존재함.
    • 배열을 이용해서 선언하면 동적 메모리(스택)에 저장됨. (수정도 가능)
char* Temp1 = "Hello World!" // 정적 메모리는 읽기 전용이라 에러!
const char* Temp2 = "Hello World!" // 양쪽 타입이 읽기 전용이라 가능!
char Temp3[] = "Hello World!" 
//이건 리터럴을 정적 메모리에 저장하고, 데이터를 복사해주는거라 가능

Temp1 의 경우 컴파일러가 허용해주는 경우가 있다고는 하지만 결국 수정하려고 하면 오류가 난다.

0개의 댓글