1.指向常量的指针:这种情况下,指针指向一个常量值,即你不能通过这个指针去修改它所指向的数据。但是,你可以改变指针本身的值(即它可以指向另一个地址)。
const int *ptr; // ptr 是一个指向 int 类型常量的指针
int const* ptr; // 等同于上面的写法
2.常量指针:这种情况下,指针本身是常量,即你不能改变指针的值(即它所指向的地址),但你可以通过这个指针去修改它所指向的数据(如果数据本身不是常量的话)。
int *const ptr; // ptr 是一个常量指针,指向 int 类型
如果你想要一个指针,其值(即指向的地址)不能被改变,同时它所指向的数据也不能被通过这个指针修改,你需要将const
关键字用在两个地方:
const int *const ptr; // ptr 是一个指向 int 类型常量的常量指针