[완료] const int *a 와 int const *a 의 차이점이 무엇인가요?

bluecafe의 이미지

const int *a;
int const *b;

위의 두 변수 차이점이 무엇인가요?

bacchusf의 이미지

bluecafe의 이미지

C faq에 있었네요. 감사합니다.

zoopi의 이미지

똑같습니다.

irondog의 이미지

bacchusf님이 링크거신 글의 18.5가 이에 해당 하겠군요.

const int *a;
는 *a값이 const라는 의미입니다. 그러므로 *a의 int 값은 변할 수 없지만 a값(주소값)은 변할 수 있습니다.

int const *b
는 b값이 const라는 의미입니다. 그러므로 b값(주소값)은 변할 수 없지만, *b의 int값은 변할 수 있다는 의미가 됩니다.

ifree의 이미지

두번째 설명은 int *const b 에 해당합니다.

int *const b;
b = &c; -> error
*b = 10; ok

irondog의 이미지

앗~ 주의해서 보질 못 했네요. 맞습니다. const int *a 와 int const *a는 같은 의미입니다.