首页 > 其他 > 详细

指针和const的组合

时间:2017-08-19 20:52:09      阅读:244      评论:0      收藏:0      [点我收藏+]

1.指向常量的指针

格式:const 类型 * 指针名 或者 类型 const * 指针名

这种类型的指针可以获取到变量或者常量的指针,但是不能通过指针去修改被指向的对象的值,同时常量的地址只能赋给指向常量的指针。

例如:

 1 int value = 1;
 2 const int MAX = 100;
 3 
 4 const int * p1;
 5 int * p2;
 6 p1 = &value;//正确,变量地址可以赋给指向常量的指针
 7 p1 = &MAX; //正确
 8 p2 = &MAX;//错误,常量地址只能赋给指向常量的指针
 9 
10 *p1 = 200; //错误,不能通过指针去修改被指向对象的值
11 *p2 = 100;//正确

2.指针常量

格式:类型 * const 指针名

这种指针同普通的常量的意义类似,表明指针的值只能在定义的时候进行初始化,同时定义后不能进行修改,即不能改变指针的指向,但是可以通过指针去间接改变被指向对象的值

例如:

1 int value = 50;
2 
3 int * const p1 = &value;
4 
5 int value_another = 100;
6 p1 = &value_another;//错误,不能改变指针常量的指向
7 
8 *p1 = 200;//正确

3.指向常量的指针常量

格式:const 类型 * const 指针名 或者 类型 const * const 指针名

这种指针是上面两种指针的综合体,指针值只能在定义的时候进行初始化,之后不能修改指针值,同时不能通过指针去修改被指向的对象的值

例如:

1 int var = 1002 const int value = 1003 
4 const int * const p1 = &var;//正确
5 const int * const p2 = &value;//正确
6 
7 p1 = &value;//错误,不能修改指针的指向
8 *p1 = 200; //错误,不能修改被指向对象的值

 

指针和const的组合

原文:http://www.cnblogs.com/qrzeng/p/7397802.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!