指向const对象的指针和const指针
2012-09-03 18:11 kennyMc 阅读(799) 评论(0) 收藏 举报1.指向const对象的指针
const char c='a';
const char c1='b';
const char* p=&c;
p=&c1;
上面的p就是指向const对象的指针,这里无法通过p来修改所指向对象的值,如果我们使用p来修改指向对象的值,编译器会报错。
*p='c';//非法的修改,编译器不通过
但是我们可以修改p指针指向的对象,因为这里指针P不是const的。
上面指针p是指向const对象的,假如指向一个非const对象,也无法通过p来修改指向对象的值,因为这里指针p是“自以为指向const的指针”。
假如指针p指向非const对象,那么我们可以通过修改该对象的值来达到修改*p的值。
char c='a';
const char* p=&c;
c='b';//这里是合法的,*p输出就是b 2.const指针
2.const指针
char c='a';
char* const p=&c;
这里常量指针p指向的是一个非常量对象c,我们可以*p='b';这样来修改c的值。
指针p是常量指针,所以我们无法修改p指向其它对象,是否可以修改指针p指向对象的值取决于被指向对象是否是const。
p=&c1;//这里就编译不过
本文版权归kennyMc和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
浙公网安备 33010602011771号