C++——指针常量、常量指针
指针常量是一个指针,它的值不能被修改,但是可以修改它所指向的数据。它被声明为常量,因此不能被赋予一个新的值。例如:
int x = 10;int *const ptr = &x; // ptr是一个指向整型变量x的指针常量*ptr = 20; // 可以修改ptr所指向的数据// ptr = nullptr; // 错误,不能修改指针常量的值
常量指针是一个指针,它指向的数据不能被修改,但是指针的值可以被修改。例如:
int x = 10;const int *ptr = &x; // ptr是一个指向整型变量x的常量指针// *ptr = 20; // 错误,不能修改ptr所指向的数据ptr = nullptr; // 可以修改指针的值
需要注意的是,这里的const关键字可以写在*的前面或者后面,它们的含义是不同的。在前面表示指向常量的指针,不能修改所指向的数据;在后面表示常量指针,不能修改指针的值。
const int *ptr1; // 指向常量的指针int const *ptr2; // 指向常量的指针,与ptr1等价int *const ptr3; // 常量指针
在使用指针常量和常量指针时,需要注意它们的不同点和适用场景,以避免出现错误。