概述
int main()
{
int n[3] = { 3,4,5 };
const int * const p = n;
//既然有指向指针的引用,就不难想到指向常量指针的引用。
//于是就有如下尝试
//const int * (&r) = p;
//结果报错如下
//将 "const int *&" 类型的引用绑定到 "const int *const" 类型的初始值设定项时,限定符被丢弃
//也就是说由于顶层const被抛弃 赋予r的为 const int *类型的指针 由于引用可以改变指向对象的值,所以声明报错
//这时候就想到了const_cast类型转换了 我们加上后代码如下
const int * (&r) = const_cast<const int *>(p);
std::cout << *r<<"
";
r += 1;
std::cout << *r<<"
" ;
//输出代码如下:3 4
//也就是说使用指向 const * const 类型的指针 的引用的时候会丢失掉指针的const 这使得我们可以改变指针引用的值(指针指向的地址)。
//这就使得源指针p的值发生了改变!!! 这很不安全!!! 所以不要使用引用来返回接口对象!!!
std::cout << *p << "
";
return 0;
}
最后
以上就是幸福花瓣为你收集整理的关于常量指针的引用的全部内容,希望文章能够帮你解决关于常量指针的引用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复