char str[]="Korea";
char *ptr="Korea";
puts(str);
puts(ptr);
ptr="China";
// str="China";
str[0]='C';
// ptr[0]='C';
위와 같이 문자형 배열이나 문자형 포인터를 문자형 상수("Korea")로 초기화 했을 때
문자형 상수는 정적 데이터 영역에 저장되어 한번 저장된 상수는 또 불러졌을 때 재사용하게 된다.
문자형 배열은 정적 데이터 영역에서 문자형 상수를 복사해서 사본을 저장하기 때문에
str[0] = 'C'처럼 요소의 값을 변경할 수는 있지만 str="China"처럼 다른 문자열을 대입할 수는 없다.
문자형 포인터는 정적 데이터 영역의 문자형 상수를 직접 가리키기 때문에
ptr = "China"처럼 다른 상수를 가리킬 순 있지만 문자형 상수를 변경하지는 못한다.
'C++' 카테고리의 다른 글
| [C++] 함수 포인터 (0) | 2022.01.03 |
|---|---|
| [C++] Const 포인터 (0) | 2022.01.03 |
| [C++] 포인터 배열과 배열 포인터 (0) | 2022.01.02 |
| [C++] 포인터 vs 배열 (0) | 2022.01.02 |
| [C++] 다차원배열 (0) | 2022.01.02 |