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

来源:互联网 发布:分割图片的软件 编辑:程序博客网 时间:2024/06/06 03:28

从题目中看,哇,好拗口,一口气可以讲下来的人可以去试试相声了。Well,书归正传。

首先从字面上看,这是两个不同的指针。

1.指向对象的const指针

  const中文意思是常量,那“const指针”也就是指针本身就是常量,既然是常量就不可以改变。例如"char *const point","point"这个指针是指向char型数据的,而且是不可以改变的。

char a,b;

a=‘a’,b='b';

char* const point=&a//注意此处point是一定要赋初值的

point=&b;//错误,point本身是常量,常量就不可以改变,“他”的一生都要指向变量a这个空间的

*point=b;//对的相当于a='b';也就是说a这个空间里的数据是可以改变的;

2.指向const对象的指针

此处的指针式普通的指针,但要注意的是“他"指向的对象本身是const的是不可以修改的,但指针是可以改变的。

        char a,b;

a=‘a’,b='b';

const char* point;//此处point是不用付初值的

point=&b;//正确,point本身是普通指针,可以换指向的

*point=b;//错误,point指针指向的是不可改变内容的空间,不能向空间重新赋值的;

还有一种指向const对象的指针表达方式:

char const * point;

小心得:只有const 和 point 之间没有任何插入项时才是常量指针。

0 0