C指向const指针的指针
我仍然困惑在哪里将const放在具有多个间接的指针中.有人可以澄清吗?
例如.现在我需要一个指向const指针的指针,意思是这样一个变量int ** ppTargets我可以为它分配int * pTargets变量,如: int foo(int **ppTargets) { int *pTargets = /* calculate here */; *ppTargets = pTargets; return 37; // just e.g. } 上面的代码缺少const.所以在foo中我希望pTargets指向常量内存并且在初始化后无法分配(因此无法写入例如pTargets),这将是int const * const pTargets = / *分配一次* /.接下来我想声明可以分配ppTargets本身的ppTargets,但是* ppTargets只能被读取. 换句话说,在我想要的来电代码中: int const* pTargets; foo(&pTargets); 我尝试按如下方式声明foo,但是得到一个错误,你无法分配给const变量: int foo(int *const *const ppTargets) 解决方法
我总是从最右边的变量名称向左读取C/C++定义.
所以: > const char * p; p是指向const的char的指针 所以p可以修改,但* p不能. p是指向const的char的指针的const指针. 所以p不能被修改(因此我初始化它); * p可以;但** p不能. [编辑 – 为完整性添加了数组] > const char * * const p [4] = {& a,& b,& c,& d}; p是一个4元素的const指针数组… (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |