前言
在 C++ 中,指针常量(constant pointer)和常量指针(pointer to constant)是两种不同类型的指针,它们具有不同的含义和用途。
正文
指针常量(constant pointer):
指针常量是指一个指针,其指向的内存地址不可更改,但可以通过该指针来修改所指向的内存位置的值。
示例:
int x = 5;
int y = 10;
int* const ptr = &x; // 声明一个指向整数的指针常量
(*ptr)++; // 合法,可以修改指向的整数的值
ptr = &y; // 不合法,不能改变指针指向的地址
在这个示例中,ptr 是一个指针常量,它一开始指向整数 x,你可以通过 ptr 来修改 x 的值,但不能将 ptr 指向其他地址。
常量指针(pointer to constant):
常量指针是指一个指针,其指向的内存地址可以更改,但通过该指针无法修改所指向内存位置的值。
示例:
int x = 5;
int y = 10;
const int* ptr = &x; // 声明一个指向常量整数的常量指针
(*ptr)++; // 不合法,不能修改指向的整数的值
ptr = &y; // 合法,可以改变指针指向的地址
在这个示例中,ptr 是一个常量指针,它指向整数 x,你可以将 ptr 指向其他整数(如 y),但不能通过 ptr 来修改这些整数的值。
根据你的需求,选择合适的类型来声明指针,以确保安全和正确的操作。