关于多重间接运算指针的const问题
2014-03-12 08:18
330 查看
首先你要清楚const的作用,以及用const定义的指针与没用const定义的指针的区别。不清楚的话请先百度。下面来说明多重间接运算的问题。在这里就直接引用书中的解释吧,它解释的很清楚。考虑下面这段代码:
int * p1; cosnt int * p2; const int ** pp2; p1 = p2;//非法,把const指针赋给非const指针 p2 = p1;//合法,把非const指针赋给const指针 pp2 = p1;//非法,把非const指针赋给const指针-----<重点>大家都知道,把const指针赋给非const指针是错误的,因为您可能会使用新指针来改变const数据。但是把非const指针赋给const指针是允许的,这样的赋值有一个前提:只进行一层间接运算。P2 = p1;//合法,把非const指针赋给const指针在进行两层间接运算时,这样的赋值不再安全。如果允许这样赋值,可能会产生如下问题:
const int ** p2; int * p1; const int n = 13; pp2 = &p1;//不允许,但我们假设允许 *pp2 = &n;//合法,二者都是const,但这同时会使p1指向n *p1 = 10;//合法,但这将改变const a的值本文出自 “zero4eva” 博客,请务必保留此出处http://zero4eva.blog.51cto.com/7558298/1373585
相关文章推荐
- 关于const常量与指针赋值的问题
- 关于const指针和指向const类型的指针的问题
- 【C++】关于带const的指针问题
- 关于const指针和指向const对象的指针的初始化问题
- 一个关于指针间赋值及间接求值的问题
- 关于const修饰指针的问题
- 关于c中指针传参的问题
- 关于 #define 和 const 定义常量所回想起的问题
- 关于类的静态成员函数指针的问题
- C语言中6组指针和自增运算符结合方式的运算顺序问题
- oc 关于对象release后 指向它的指针如何处理的问题
- 关于指针结构体函数中指针变量的赋值&的问题思路
- 数据结构 二叉树的创建 关于二级指针的问题
- 关于指针问题的一个笔记加牢骚
- 关于c++中一些指针问题的思考
- 优化问题关于const第二篇
- 一个关于指针的问题 int (**def)[3]的解析
- C++ 关于用指针修改const的值
- 关于结构体二级指针引用时必须加括号的问题 (*L)->next,而不是*L->next
- 关于为结构体指针申请内存的问题