C++
[C++] char*, const char*, char* const
WantAirpod
2020. 7. 21. 13:02
반응형
1) char* v;
v는 문자, 문자열이 저장된 메모리의 첫 주소를 저장할 수 있는 포인터변수
v 주소 메모리의 내용 변경 가능
v 문자열 변경 가능
ex)
char* v ="문자열 상수1"; //초기화 했어도 코드중에 언제나 변경 가능
v= "문자열 상수2"; //변경 가능
v= "문자열 상수3"; //변경 가능
2)const char* v;
v는 문자열이 저장된 메모리의 첫 주소를 저장할 수 있는 포인터변수, 즉, v는 "상수문자열"의 포인터변수라는 의미
v 주소 메모리의 내용 변경 불가
v 문자열 변경 가능
한편, const의 대상이 v자체가 아니므로 v가 가리키는 주소는 변경가능함.
ex)
const char* v = "난 문자열 상수1이다"
위 처럼 초기화 했어도, 코드상에서 아래 처럼 다른 문자열의 메모리 주소를 대입가능하다는 말
v="난 문자열 상수2임" //가능함 v에 다른 문자열 주소는 대입가능
*v="난 문자열 상수2임"; //허용 안됨. v는 주소 메모리의 값을 변경 의도한 것인데, const char* v; 의 정의가 이런거 못하게 하는 것
3)char* const v;
v는 문자열이 저장된 메모리의 첫 주소를 저장할수 있는 포인터변수
초기화 할 때 한번 지정된 문자열& 메모리 주소는 변경 못함
ex)
char* const v = "난 문자열 상수1이다." ; 로 초기화 했는데
v="난 문자열 상수2임"; 으로 변경 허용 안됨.
반응형