const
限定符和指针结合起来常见的情况有以下几种。
(1)指向常量的指针
const int *a; int const *a;
这两种写法是一样的,a
是一个指向const int
型的指针,a
所指向的内存单元不可改写,所以(*a)++
是不允许的,但a
可以改写,所以a++
是允许的。
指针指向的内容不变,但是指针本身是可以变的。
(2)常指针
int * const a;
a
是一个指向int
型的const
指针,*a
是可以改写的,但a
不允许改写。
指针本身是不可以变的,但是指针指向的内容是可以变的。
(3)指向常量的常指针
int const * const a;
a
是一个指向const int
型的const
指针,因此*a
和a
都不允许改写。
指针本身和指向的内容都是不允许变的。
以上三种情况如果你学个c++的话,应该有接触!