C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了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不能.
> const char * * const p =& a;

p是指向const的char的指针的const指针.

所以p不能被修改(因此我初始化它); * p可以;但** p不能.

[编辑 – 为完整性添加了数组]

> const char * * const p [4] = {& a,& b,& c,& D};

p是一个4元素的const指针数组…

@H_450_52@

大佬总结

以上是大佬教程为你收集整理的C指向const指针的指针全部内容,希望文章能够帮你解决C指向const指针的指针所遇到的程序开发问题。

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。