C++ const 双指针
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 ;
其中 arr 是动态分配的双维数组。
之后我试图验证我做了什么,我写了下面的语句,期望所有这些语句都会产生错误。
**cp1 = 1; // didn't produce error
*cp1 = arr[4]; // didn't produce error
cp1 = new double*[5]; //produce error
所以问题是我无法实现我上面描述的,一个常量双指针指向一个常量指针指向一个常量双精度。我怎样才能做到?
提前致谢。
中只有一个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
我想让一个常量双指针指向一个常量指针指向一个常量双精度。我开始从头开始制作它(当然我在书上做了一些搜索,然后用谷歌搜索)并思考以下三个制作的东西:
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 ;
其中 arr 是动态分配的双维数组。 之后我试图验证我做了什么,我写了下面的语句,期望所有这些语句都会产生错误。
**cp1 = 1; // didn't produce error
*cp1 = arr[4]; // didn't produce error
cp1 = new double*[5]; //produce error
所以问题是我无法实现我上面描述的,一个常量双指针指向一个常量指针指向一个常量双精度。我怎样才能做到?
提前致谢。
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