在C++中,const指针指向的是一个常量值,即该指针所指向的内存地址中的值不能被修改。如果要修改指针指向的值,需要使用const修饰指针本身,即将指针本身也变成常量。
例如,假设有一个整型数组a,可以定义一个指向该数组的const指针:
int a[] = {1, 2, 3, 4, 5};
const int* ptr = a;
这样,ptr指向的值不能被修改,但是可以改变ptr指向的地址:
ptr++; // 指向a[1]
如果要将ptr指向的值也变成常量,可以使用const修饰指针本身:
int a[] = {1, 2, 3, 4, 5};
int* const ptr = a;
这样,ptr指向的值可以被修改,但是ptr指向的地址不能被改变:
*ptr = 10; // 修改a[0]的值
ptr++; // 编译错误,ptr指向的地址不能被改变
因此,在使用const指针时,需要根据具体的需求来选择是否将指针本身也变成常量。
领取专属 10元无门槛券
手把手带您无忧上云