gpt4 book ai didi

C++ const 双指针

转载 作者:太空狗 更新时间:2023-10-29 20:20:50 25 4
gpt4 key购买 nike

我想让一个常量双指针指向一个常量指针指向一个常量 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

所以问题是我不能做我上面描述的,一个常量双指针指向一个常量指针指向一个常量 double 。我怎样才能做到?

提前致谢。

最佳答案

中只有一个 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

关于C++ const 双指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47854238/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com