포인터를 선언할 때 const를 사용하는 방법에 대해서 알아보겠습니다.
string name = "티이";
string nickname = "하얀뱀";
const string * myname = &name; // 이 선언은 포인터가 가리키고 있는 값을
// 변경할 수 없도록 합니다.
*myname = "푸우"; // 에러, 가리키는 값은 변경불가.
myname = &nickname; // 통과, 가리키는 주소는 변경가능.
string * const myname = &name; // 이 선언은 포인터가 가리키고 있는 주소를
// 변경할 수 없도록 합니다. (참조자와 유사)
*myname = "푸우"; // 통과, 가리키는 값은 변경가능.
myname = &nickname; // 에러, 가리키는 주소는 변경불가.
const string * const myname = &name; // 이 선언은 포인터가 가리키고 있는
// 주소와 값 모두 변경할 수 없도록 합니다.
*myname = "푸우"; // 에러, 가리키는 값은 변경불가.
myname = &nickname; // 에러, 가리키는 주소도 변경불가.
string nickname = "하얀뱀";
const string * myname = &name; // 이 선언은 포인터가 가리키고 있는 값을
// 변경할 수 없도록 합니다.
*myname = "푸우"; // 에러, 가리키는 값은 변경불가.
myname = &nickname; // 통과, 가리키는 주소는 변경가능.
string * const myname = &name; // 이 선언은 포인터가 가리키고 있는 주소를
// 변경할 수 없도록 합니다. (참조자와 유사)
*myname = "푸우"; // 통과, 가리키는 값은 변경가능.
myname = &nickname; // 에러, 가리키는 주소는 변경불가.
const string * const myname = &name; // 이 선언은 포인터가 가리키고 있는
// 주소와 값 모두 변경할 수 없도록 합니다.
*myname = "푸우"; // 에러, 가리키는 값은 변경불가.
myname = &nickname; // 에러, 가리키는 주소도 변경불가.
위와 같이 사용하시면 됩니다.