C指向const指针的指针

C指向const指针的指针,第1张

概述我仍然困惑在哪里将const放在具有多个间接的指针中.有人可以澄清吗? 例如.现在我需要一个指向const指针的指针,意思是这样一个变量int ** ppTargets我可以为它分配int * pTargets变量,如: int foo(int **ppTargets) { int *pTargets = /* calculate here */; *ppTargets = pTa 我仍然困惑在哪里将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不能.
> 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指针的指针所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/langs/1218676.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-05
下一篇2022-06-05

发表评论

登录后才能评论

评论列表(0条)

    保存