인프런 커뮤니티 질문&답변

김지윤님의 프로필 이미지
김지윤

작성한 질문수

홍정모의 따라하며 배우는 C언어

10.10 const와 배열과 포인터

const와 배열, 포인터

작성

·

100

·

수정됨

1

10.10 강의에서

const double* const pd 비쥬얼스튜디오 버젼으로 작성되었습니다.

전 강의에서 알려주신 대로 다른 버젼으로 바꿔보니

const double *const pd 가 되었습니다.

const double const *pd 라고 생각했었는데

const double *const pd 로 표기되는 건 이렇게 원래 이렇게 설정된 건가요?

답변 1

1

안녕하세요, 질문&답변 도우미 Soobak 입니다.

 

*const 키워드의 위치에 초점을 맞추시면 이해에 도움이 되실 것 같습니다.

const double* pd 와 같이, * 이전에 const 키워드가 붙는다면, 포인터가 가리키고 있는 곳의 메모리를 변경하지 않겠다는 의미이며,

double* const pd 와 같이 * 이후에 const 키워드가 붙는다면, 포인터 변수 그 자체의 값을 변경하지 않겠다는 의미입니다.

 

const double* const pdconst double *const pd 의 차이인 공백의 위치에 대한 차이는,
문법적으로 동일하며 의미상의 차이가 없습니다.
단순히 코드의 가독성과 스타일에 관련된 문제일 뿐입니다. 두 표현 모두 동일하게 해석됩니다.

 

이해가 어려우시다면 편하게 댓글 남겨주세요.

김지윤님의 프로필 이미지
김지윤

작성한 질문수

질문하기