I want to make a constant double pointer points to a constant pointer points to a constant double. I started to make it (of course I make a little search at books and I googled it) from scratch and think what the following three make:
const double* cp; //pointer to a constant double
double *const cp; //constant pointer
const double *const cp; //constant pointer to a constant double
I thought the next step is to write a constant double pointer
double **const cp;// double constant pointer
then I combine the last two statements and I write
const double *const cp = arr[0];
double **const cp1 = arr ;
where arr is a dynamically allocated double dimension array. After that I tried to verify what I have done and I wrote the below statements expecting to produce error all of them.
**cp1 = 1; // didn't produce error
*cp1 = arr[4]; // didn't produce error
cp1 = new double*[5]; //produce error
So the thing is that I couldn't make what I described above , a constant double pointer points to a constant pointer points to a constant double. How can I make it ?
Thanks in advance.
There's only one
const
inso I'm not sure why you're expecting the other two assignments to produce an error.
If you want it to be
const
on all levels, you need