C语言中常量指针和指针常量是两个不同的概念。
- 常量指针(const pointer):指针指向的地址是固定的,不可修改,但是可以通过指针修改所指向的值。例如:
int num = 5; const int *ptr = # // 常量指针,指向的地址不可修改 *ptr = 10; // 错误,不能通过指针修改所指向的值 ptr = &another_num; // 正确,可以修改指针指向的位置
- 指针常量(pointer to constant):指针本身是常量,不可修改,但是可以通过其他方式修改所指向的值。例如:
int num = 5; int *const ptr = # // 指针常量,指针本身不可修改 *ptr = 10; // 正确,可以通过指针修改所指向的值 ptr = &another_num; // 错误,不能修改指针本身
总结来说,常量指针是指针所指向的地址不可修改,但是可以通过指针修改所指向的值;指针常量是指针本身不可修改,但是可以通过其他方式修改所指向的值。