在C++中,常量指针和指针常量是两个不同的概念,它们涉及到指针和常量的组合。让我们来详细解释它们的含义:
-
常量指针(Constant Pointer):
- 一个常量指针是指针本身是常量,它指向的内容可以被修改。
- 一旦指针被初始化指向某个变量,就不能再指向其他变量。
- 通过指针可以修改所指向的变量的值。
int x = 10; int y = 20; // 常量指针,指向整数,但指针本身是常量 const int* ptr = &x; // 合法,因为ptr指向的内容可以修改 x = 15; // 非法,因为ptr本身是常量,不能指向其他变量 // ptr = &y; // 编译错误 // 合法,因为ptr指向的内容可以修改 *ptr = 25;
-
指针常量(Pointer to Constant):
- 一个指针常量是指针指向的内容是常量,但指针本身可以被修改。
- 一旦指针被初始化指向某个变量,就可以指向其他变量。
- 通过指针不能修改所指向的变量的值。
int x = 10; int y = 20; // 指针常量,指针本身是变量,但指向的内容是常量 int* const ptr = &x; // 合法,因为ptr指针本身可以修改 ptr = &y; // 合法,因为ptr指向的内容是常量,不能修改 // *ptr = 25; // 编译错误
总结一下:
- 常量指针:指针本身是常量,指向的内容可以修改。
- 指针常量:指针本身是变量,指向的内容是常量。
这两个概念在C++中是很有用的,特别是在函数参数、数组等场景中。理解它们有助于正确使用指针并确保数据的安全性。
标签:常量,指向,int,C++,ptr,变量,指针 From: https://www.cnblogs.com/keye/p/17924243.html