这两个概念经常分不清,今天好好总结一下。
一、指针常量
先说指针常量,是因为它和我们常用的数组有关系。
指针常量的声明
int * const p;
指针声明操作符*在常量限定符const前面,叫做指针常量。忽然发现了一点规律^_^。
const限定符修饰的是指针。数组名就是一个指针常量。而数组名和指针有什么区别呢?可以通过引用数组名去修改指向的内存,但是自身不可以被赋值,不可以进行++、–操作。
二、常量指针
常量指针的声明
const int * p1;
int const * p2;
常量限定符const在指针声明操作符*前面,叫做常量指针。
const修饰的是指针指向的内存地址。常量指针和上面的指针常量在赋值行为上相反。自身可以被赋值,支持++、–操作,但是不可以通过指针的引用去修改指向的内存。
总结:记住“数组名就是指针常量”,这个蛋疼的问题就算解决了。
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/u011450367/article/details/47209551