> 文章列表 > C++——指针常量、常量指针

C++——指针常量、常量指针

C++——指针常量、常量指针

在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; // 常量指针

在使用指针常量和常量指针时,需要注意它们的不同点和适用场景,以避免出现错误。