const 포인터 상수화 질문이요.
악당
2023.04.01
#include stdio.hint main(void){int i=10, j=50;const int *p = &i;int * const q = &i;const int * const r = &i;i = 20; *p = 30; //오류*q = 30;q = &j; //오류j = 55;*r = 40;//오류r = &j;//오류return 0; }------------------------------------------------------const 상수화에 대해서 질문인데요.. 제가 주석 단 부분은 왜 오류인지 알겠는데10번째 줄의 i= 20; 이부분이 왜 오류가 안나는지 모르겠네요..포인터 p가 가리키는게 i이고 *p=i이니까 i값을 못바꾸지 않나요?
-
세찬
수다님 말씀대로 i는 그냥 int i일 뿐이고
상수형 포인터 p는 그냥 지멋대로 i를 가르키고 있을 뿐이기 때문에
i의 권한(?)에는 영향을 미치지 못하지 않나요? -
슬아라
포인터를 통해서는 못바꾸는게 맞는데, i를 집접적으로 핸들링하면 바꿀수 잇죠.
i입장에서야 포인터가 자신을 포인팅하고 있던 포인터에 const가 붙었던 말건 상관없는 일일 뿐이니까요