본문 바로가기
programing/C++

typedef 상수 포인터

by RedWiz 2017. 4. 7.

- 상수 포인터에 대해서는

> int* const p;            // p 자체 주소값만 상수

> const int* p;            // p가 가리키는 값(p*)만 상수상수

> const  int* const p;   // p 자체 주소값과 p가 가리키는 값(p*) 모두 상수


다 알고 있는 내용일 듯...


- 그러면 typedef을 이용하여 포인터 자료형을 재정의 한다면?

> 상수 포인터 처럼 되지 않을까 했지만

> #define으로 한 매크로 정의가 아니기 때문에 다르다


typedef int* PINT;


const PINT p;    // p 자체 주소값만 상수

PINT const p;    // 허용은 되나 잘 안 쓰는 구식 표현, p 자체 주소값만 상수


따라서 포인터가 가리키는 내용을 상수화 할 수 없다.

- 주소값 상수화 : 주소 변경시 에러 -

 

- 주소 가리키는 내용 상수화 : 멤버 변수 못 바꿈 -

 

- typedef STRUCT* PSTRUCT -

주소값은 바꾸는데 내용물은 바꿀 수 있다 -> 내용물을 상수화 시킬 수 없다 -> 혼파망ㅠㅠ

 

cf.잘 안쓰는 표현, 자료형 앞에 붙인 표현 같은 취급

 

 

 

'programing > C++' 카테고리의 다른 글

Get Set 함수를 쓰는 의미  (0) 2017.04.10
함부로 인수에 레퍼런스 타입을 넣으면 안된다.  (0) 2017.04.07
가변 함수  (0) 2017.04.05
final, override, interface  (0) 2017.04.03
__super 키워드  (0) 2017.03.30