指向指针的指针与常量
来源:互联网 发布:北京 职称评审知乎 编辑:程序博客网 时间:2024/06/05 18:04
为了说明这个问题,我们首先给一个错误的例子。
int a = 42;int* b = &a;const int** c = &b; // error
根据const关键词,c所指向的应该是一个常量,不能被改变。如果允许这样转换,则可以通过*c改变指针b的值,由于b不是常量指针,通过b则可以间接改变**c的值,这与常量声明矛盾,例如下面的代码
const int v1 = 10; // this is a constant it should never change int* p1; const int** p2 = &p1; // in reality this is illegal *p2 = &v1; // this is allowed since both "*p2" and "&v1" have type "const int*" *p1 = 11; // now we have modified v1!!!
C++允许T*转换为const T*,因为这不会产生将常数值改变的问题(上例中的问题)。但是不允许将T**转换为const T**。
参考文献:
[1] www.velocityreviews.com/forums/t291343-pointer-to-pointer-to-const.html
[2] www.cplusplus.com/forum/general/12002/
0 0
- 指向常量的指针 与 常量指针
- 指针与常量,指向常量的指针
- 指向常量的指针与指针常量
- 常量指针与指向常量的指针
- 常量指针与指向常量的指针
- 常量指针 与 指向常量的指针
- 指针常量与指向常量的指针
- 常量指针与指向常量的指针
- 常量指针与指向常量的指针
- 常量指针与指向常量的指针
- 指向常量的指针与指针常量
- 指向常量的指针与指针常量
- 常指针与指向常量的指针
- 常指针与指向常量的指针
- 指向指针的指针与常量
- 指向常量的指针与常量指针的异同
- 指向常量的指针与常量指针初始化问题
- c++ - 常量指针与指向常量的指针
- 圈地为王示例
- xcode 5.x 编译能通过 运行崩溃报如下错误 升级OS X 到10.9.2就OK了,具体原因不明
- PAT 1004. 成绩排名
- Shiro 基础
- Android开源项目分类汇总
- 指向指针的指针与常量
- uva 11401 - Triangle Counting(数论)
- 基于NodeJS的前后端分离
- 智能拼图
- OCP-1Z0-051 第131题 LEFT OUTER JOIN和RIGHT OUTER JOIN的用法
- PAT 1005. 继续(3n+1)猜想
- Perl 十条基本编程实践
- 标准SQL语句(2)--- 表的增删改
- OGRE之第一个程序