指针const对象的指针

来源:互联网 发布:淘宝头条能做淘客吗 编辑:程序博客网 时间:2024/05/16 15:56

菜鸟之见,多多指教。

1.指针const对象的指针。如:int const *ptr;是指指向int型const对象的指针。也就意味着对*ptr的赋值必须是 int型const对象。

 例如1:

 int const *p;

 *p = 42;//错误的,因为42是个常量,而不是一个const对象。编译会报出这样的错误:左值指定const对象。

例如2:

int const *pa;

int const *pb;

int a=0;

const int b=1;

*pa= a;

*pb=b;

这两个都正确,a不是const对象,为什么*pa = a;是正确?本质上来说,由于无法分辨pa所指向对象是不是const,系统把它所有指向的对象认为是const对象。