码迷,mamicode.com
首页 > 其他好文 > 详细

指向const对象的指针和const指针

时间:2014-09-06 17:15:43      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:ar   strong   sp   on   amp   c   har   bs   r   

const char *p1;/指向const对象的指针

char const *p2;//同上

char *const p3;//const 指针

区别:const后面是什么就限定什么,比如char const *p 就是限定(*p),(*p)就是p指向的那段内存不能变,p的值可以改变,如果是char* const p就是限定p指针的值。

1. 指向const对象的指针,适合做函数形参,保证指向对象不被修改

 1.1 p1指向的值不可改变,指向const对象,但是p1可以被修改指向非const对象

const char c1 =‘c‘;

p1 = &c1;

char c2 = ‘d‘;

p1 = &c2;//p1指向了非const对象,但p1不同通过*p1来改变其值。 

char *p4 = &c;

p1 = p4;

*p4 = e‘;//p4对象指向被改变,p1也指向它,同样被改变。

 1.2 非指向const对象的指针不能指向const对象

2.const指针

 2.1 p3不能指向其他地址

char c3 = ‘f‘;

p3 = &c3;

char c4 = ‘g‘;

char *p5 = &c4;

p3=p5;//错误,p3是const,不能被修改

c3 = ‘h‘;//c3被修改,指针指向的值同样被修改

 

指向const对象的指针和const指针

标签:ar   strong   sp   on   amp   c   har   bs   r   

原文地址:http://www.cnblogs.com/kakuka/p/3959503.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!