常量指针是指向常量的指针,指针本身可变,但不能通过指针修改所指向的数据;指针常量是值不可变的指针,一旦初始化后不能指向其他地址,但可修改所指向的数据(除非数据为const);常量指针常量既不能改变指向,也不能通过指针修改内容。

常量指针和指针常量是C++中两个容易混淆的概念,它们的区别主要在于“谁是常量”——是指针本身不能变,还是指针指向的数据不能变。
更准确的说法是“指向常量的指引”,即指针指向的内容是常量,不能通过该指针修改所指向的数据。指针本身可以改变,能指向其他地址。
语法形式:特点:
示例:
立即学习“C++免费学习笔记(深入)”;
const int a = 10; const int b = 20; const int *ptr = &a; // *ptr = 15; // 错误:不能修改指向的内容 ptr = &b; // 正确:可以改变指针指向
也叫“常指针”,是指指针本身的值(即它保存的地址)不能改变,一旦初始化后就不能再指向别的变量。但可以通过指针修改所指向的内容(除非数据本身也是const)。
语法形式:特点:
示例:
立即学习“C++免费学习笔记(深入)”;
int a = 10; int b = 20; int *const ptr = &a; *ptr = 15; // 正确:可以修改a的值 // ptr = &b; // 错误:不能改变指针指向
指针本身是常量,且指向的内容也是常量。既不能修改指向,也不能通过指针修改内容。
语法形式:示例:
立即学习“C++免费学习笔记(深入)”;
const int a = 10; const int b = 20; const int *const ptr = &a; // *ptr = 15; // 错误:不能修改内容 // ptr = &b; // 错误:不能修改指针
判断技巧:从右往左读声明。
比如:const int *ptr → ptr 是一个指针,指向一个 int 类型的常量。
int *const ptr → ptr 是一个常量指针,指向一个 int 类型。
基本上就这些,关键看 const 修饰的是 * 还是指针名。
以上就是C++常量指针与指针常量区别的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号