标签: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被修改,指针指向的值同样被修改
标签:ar strong sp on amp c har bs r
原文地址:http://www.cnblogs.com/kakuka/p/3959503.html