题目:指针常量 与 常量指针分别指什么?
(1)指针常量是一个常量,其类型是一个指针。int* const p=&a; 说明指针p是一个常量,不可改变,即它始终指向同一个地址。因此必须在定义的同时进行初始化。
(2)常量指针是一个指针,指向的内容是常量(不可改变)。const int *p=&a; *p=20这是错误的用法。 可以将常量、变量的地址赋给常量指针,但是都不允许常量指针修改指针指向的内容。
另外需要注意的是:
(1)const int* p等价于int const *p,都说明p是一个常量指针。
(2)常量的地址不能初始化普通指针。即const 修饰的变量的地址必须交给一个常量指针。
(3)作为常量,不管是指针常量,还是const修饰的常量,都必须在定义的同时初始化。