반응형
int nData = 10; const int *p = &nData; int* const p = &nData;
우선, const는 const 키워드의 오른쪽에 있는 것을 상수화 한다.
따라서, 두번째 줄의 const int *p 의 경우에는, int 를 상수화 하는 것이므로 즉 포인터가 가리키는 대상 메모리(nData)를 상수화 시킨 것이다.
따라서 p 를 이용해서 대상 메모리 nData에 대입 연산을 수행할 수 없다.
이 경우가 주로 쓰이는데, 대상 메모리의 값 변경을 원하지 않을 경우 사용한다. 가급적 보호가 필요한 메모리에 대해서는 const를 붙여주는 것이 좋다.
세번째 줄의 int* const p 의 경우에는, p 를 상수화 하는 것이므로 포인터 변수 자체를 상수화 하는 것이다.
따라서 선언 후 포인터 p 자체에 대입 연산을 수행할 수 없다 (포인터가 가리키는 메모리를 바꾼다거나)
[출처] const int *p와 int* const p의 차이점|작성자 경민ㅇ1
반응형
'프로그램 및 소스' 카테고리의 다른 글
[윈도우 7] 아이콘 깨짐 현상 해결하기 및 아이콘 캐시 늘리기 (아이콘 캐시 재설정) (0) | 2014.04.25 |
---|---|
외장하드나 usb 바로가기 바이러스 치료방법 (1) | 2014.04.09 |
LINK : fatal error LNK1123: COFF로 변환하는 동안 오류가 발생했습니다. 파일이 잘못되었거나 손상되었습니다. (1) | 2014.03.12 |
허브FTP Hub FTP Server (0) | 2013.09.09 |
editplus 구문색상 설정파일 스킨 (1) | 2013.03.23 |