2017-12-17 27 views
1

상수 포인터를 가리키는 상수 포인터를 만들고 싶습니다. 상수 포인터는 상수 포인터를 가리 킵니다. 나는 그것을 만들기 위해 시작 (나는 책에서 약간의 검색을 물론 나는 그것을 봤) 처음부터 다음과 같은 세 가지 메이크업 어떻게 생각 :C++ const double pointer

const double* cp; //pointer to a constant double 
double *const cp; //constant pointer 
const double *const cp; //constant pointer to a constant double 

내가 다음 단계는 일정한 이중 포인터를 작성하는 것입니다 생각

double **const cp;// double constant pointer 

다음 나는 마지막 두 문장을 결합하고 편곡이 동적으로 할당 된 이중 차원 배열입니다 어디

const double *const cp = arr[0]; 
double **const cp1 = arr ; 

물품. 그 후 나는 내가 한 것을 검증하려고 노력했고, 아래의 진술은 모두 오류를 일으킬 것으로 예상했다.

**cp1 = 1; // didn't produce error 
*cp1 = arr[4]; // didn't produce error 
cp1 = new double*[5]; //produce error 

그래서 것은 내가 상수 배에 상수 포인터 점, 위의 일정 이중 포인터 점을 설명 무엇을 할 수 없다는 것입니다. 어떻게 만들 수 있습니까?

미리 감사드립니다.

+1

권장 읽기 : https://stackoverflow.com/questions/46991224/are-there-any-valid-use-cases- to-use-new-and-delete-raw-pointer-or-c-style-arr – user0042

답변

4

그래서 나는 당신이 오류가 발생하는 다른 두 과제를 예상하는 이유를 모르겠어요 하나의 const

double **const cp1 = arr ; 
//  ^^^^^ 

에있다.

당신이 모든 수준에 const 싶은 경우에, 당신이 필요로하는

const double *const *const cp1 = arr; 
//      ^cp1 is ... 
//    ^a const pointer to ... 
//   ^a const pointer to ... 
//^a const double 
+0

해답을 주셔서 감사합니다. 책에서도 나는이 예와 같은 설명을 찾지 못했습니다. –