C语言中指针常量(const pointer)和常量指针(pointer to const)的区别如下:
- 指针常量(const pointer):指针本身是一个常量,它的值(即指向的地址)不能被改变,但是可以通过该指针来修改所指向的变量的值。例如:
int x = 5; int *const ptr = &x; // ptr是一个指针常量,它的值不能被改变 *ptr = 10; // 可以通过ptr修改x的值
- 常量指针(pointer to const):指针所指向的变量是一个常量,它的值不能被修改,但是指针本身可以指向其他变量。例如:
const int x = 5; const int *ptr = &x; // ptr是一个常量指针,它指向的变量x的值不能被修改 ptr = &y; // 可以改变ptr的指向,指向其他变量
总结起来,指针常量是指针本身不可变,但是可以通过该指针来修改所指向的变量的值;而常量指针是指针所指向的变量不可变,但是指针本身可以指向其他变量。