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在*号前面。