C++中const修饰指针探讨
来源:互联网 发布:ep8数据库架设 编辑:程序博客网 时间:2024/05/29 15:27
在C++里,const修饰指针有以下三种情况
(1)const int *p; const在类型前,称指向常量的指针,可以这样理解它的功能,因为const在int前,所以p指向的这个int变量对于*p来说是const的,即不能通过*p改变这个变量的值,但是变量本身可以随便改变自己的值。另外也可以改变p的指向。
例:
int x=2;
int y=3;
const int *p=&x;
*p=4; //错误,不能通过*p改变变量的值
x=4; //可以,x不是一个常量,可以改变自己的值
*p=&y; //可以,指针p本身不是一个常量,可以改变p的指向。
(2)int * const q; const在指针q的前面,叫常量指针,也就是说指针q本身是个常量,不能改变q的指向。但是可以通过*q改变所指向变量的值。
例:
int x=2;
int y=3;
int * const q=&x; //注:因为指针q是常量,在声明时就应该初始化。
*q=4; //可以
x=4; //可以,x不是一个常量,可以改变自己的值
*q=&y; //错误,指针q本身是一个常量,不能改变它的指向。
(3)const int * const pq; 这是前两种的结合,叫指向常量的常量指针。功能也是前两者的结合,即不能改变pq的指向,也不能通过*pq改变所以变量的值。
例:
int x=2;
int y=3;
const int * const pq=&x;
*pq=4; //不可以,不能通过*pq改变所指变量的指。
x=4; //可以,x不是一个常量,可以改变自己的值
*pq=&y; //错误,指针pq本身是一个常量,不能改变它的指向。
总结:从上面可以看出,不论那种情况,变量本身都是可以改变自己的值的,除非变量本身就是声明成常量(const int x=2;)。区别三种情况关键就是看const在类型前还是在指针前,在类型前,不能通过*p改变变量的值,在指针前不能改变指针的指向,且在声明时就要初始化。
- C++中const修饰指针探讨
- c语言中const修饰指针变量
- [c/c++]const修饰指针
- C:带有const修饰的指针解读
- C语言--const修饰指针解析
- C语言const关键字修饰指针
- C:带有const修饰的指针解读
- C/C++ const 修饰指针变量
- C++:带有const修饰的指针解读
- C++中Const 修饰指针就近原则
- C中指针const
- [C++] C++中const修饰指针,变量, 函数参数和函数返回值的用法总结
- const 修饰 指针
- const修饰指针
- 关于const修饰指针
- const修饰指针 变量
- const修饰指针
- 关于const修饰指针
- 源码内核
- Android Renderscript小记
- Oracle定时器(Job)各时间段写法汇总
- PHP中如何实现 “在页面中一边执行一边输出” 的效果
- 使用SimpleDateFormat顺利解析日期
- C++中const修饰指针探讨
- RMAN 'Duplicate From Active Database' Feature in 11G [ID 452868.1]
- Spring内置提供的NativeJdbcExtractor转换器
- ARM发布Cortex-A15四核旗舰处理器
- mobile项目 版本控制/编译条件
- mac os下如何刻录光盘
- Ajax与js同步问题
- Android摇一摇随机产生一件商品/应用/好友配对的方法
- C# 进制转换