const 위치 와 포인터 의 관계

1140 단어 c++
int b = 500;
const int* a = &b; 			[1]
int const *a = &b;			[2]
int* const a = &b;			[3]
const int* const a = &b;	    [4]

typedef        char *         Pchar; // pointer to char
typedef const Pchar          CPchar; // const pointer to char
typedef const  char *        PCchar; // pointer to const char
typedef       Pchar *        PPchar; // pointer to pointer to char
typedef const  char * const CPCchar; // const pointer to const char
typedef      PCchar *       PPCchar; // pointer to pointer to const char

우 리 는 'Effective c + +' 아 이 템 21 의 방법 을 참고 할 수 있 습 니 다.
   1. const 가 별표 의 왼쪽 에 있 으 면 const 는 포인터 가 가리 키 는 변 수 를 수식 하 는 것 입 니 다. 즉, 포인터 가 상수 로 가리 키 는 것 입 니 다.
   2. const 가 별표 오른쪽 에 있 으 면 const 는 포인터 자 체 를 수식 하 는 것 입 니 다. 즉, 포인터 자체 가 상수 입 니 다.따라서 [1] 과 [2] 의 경우 포인터 가 가리 키 는 내용 은 상수 (const 는 변수 성명 자의 위치 와 무관) 이 며, 이 경우 내용 변경 작업 을 허용 하지 않 습 니 다. * a = 3 이 불가능 할 경우.
   3. [3] 포인터 자체 가 상수 이 고 포인터 가 가리 키 는 내용 은 상수 가 아 닙 니 다. 이 경우 포인터 자체 에 대해 변경 작업 을 할 수 없습니다. 예 를 들 어 a + + 는 잘못된 것 입 니 다.
   4. [4] 포인터 자체 와 가리 키 는 내용 은 모두 상수 이다.
 결론 적 으로 왼쪽 상수 오른쪽 지침 이다.

좋은 웹페이지 즐겨찾기