
例如.现在我需要一个指向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不能.
> const char * * const p =& a;
p是指向const的char的指针的const指针.
所以p不能被修改(因此我初始化它); * p可以;但** p不能.
[编辑 – 为完整性添加了数组]
> const char * * const p [4] = {& a,& b,& c,& d};
p是一个4元素的const指针数组…
总结以上是内存溢出为你收集整理的C指向const指针的指针全部内容,希望文章能够帮你解决C指向const指针的指针所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)