const和指针

1. int * const p;

意思是这个p是个const,不能执行p++这样的操作等。但是可以改变*p的值。

其实这个东西就是数组的本质。你不能改变数组的起始位置。因为它是一个const。但是你可以改变数组第一个元素的值,因为它相当于*p。

举个例子:

int a[], b[];

a = b;

这个就不能实现,因为这相当于是改变a数组的起始位置为b数组的起始位置。总之记住,数组本质上是常量指针。

 

2. const  * int p和 const int *p 是一回事。

意思是这个*p是个const,你可以改变p的值,比如之前指向变量i的地址,可以改成指向变量j的地址。但是不能通过*p来给p所指向地址对应变量的值。

 

3. 区别

上面两者的区别在于,第一种,const在*号后面,第二种const在*号前面。

 

posted @ 2014-12-24 22:09  谭哥  阅读(95)  评论(0编辑  收藏  举报