c++中const T* 和 T* const的区别是什么_解析C++中不同常量指针写法的区别与用法

const T 表示指向常量的指针,数据不可改、指针可改;T const 表示常量指针,指针不可改、数据可改;const T* const 两者均不可改。

c++中const t* 和 t* const的区别是什么_解析c++中不同常量指针写法的区别与用法

在C++中,const T*T* const 看起来相似,但含义完全不同。它们的区别在于“const修饰的是指针本身,还是指针所指向的数据”。

const T*:指向常量的指针(Pointer to const)

这种写法表示指针指向的数据是常量,不能通过该指针修改数据,但指针本身可以改变,即可以指向其他地址。

等价写法:const T* 和 T const * 是一样的。

特点:

立即学习“C++免费学习笔记(深入)”;

不能修改指针指向的内容可以修改指针本身(让它指向别的地方)

示例:

const int value1 = 10;
const int value2 = 20;
const int* ptr = &value1; // 指向 value1
// *ptr = 15; // 错误!不能修改指向的内容
ptr = &value2; // 正确!可以改变指针指向

T* const:常量指针(Const pointer)

这种写法表示指针本身是常量,一旦初始化后就不能再指向其他地址,但可以通过该指针修改它所指向的数据(前提是数据本身不是const)。

特点:

立即学习“C++免费学习笔记(深入)”;

指针初始化后不能改变指向可以修改指针指向的内容(如果原数据允许)

示例:

int value1 = 10;
int value2 = 20;
int* const ptr = &value1; // 初始化时指定指向
*ptr = 15; // 正确!可以修改值
// ptr = &value2; // 错误!不能改变指针指向

const T* const:指向常量的常量指针

结合上面两种情况,这种写法表示指针本身是常量,且指向的数据也是常量。

特点:

立即学习“C++免费学习笔记(深入)”;

不能修改指针指向不能通过指针修改数据

示例:

const int value1 = 10;
const int value2 = 20;
const int* const ptr = &value1;
// *ptr = 15; // 错误!不能改数据
// ptr = &value2; // 错误!不能改指针

如何快速判断const修饰的是谁?

一个简单的方法是“从右往左读”声明:

const T* → 指针指向一个 const T(数据不能改)T* const → 一个 const 指针,指向 T(指针不能改)const T* const → const 指针指向 const T(都不能改)

关键是看 const 紧邻的是 * 还是 T。

基本上就这些。理解清楚 const 的位置,就能准确掌握指针和数据的可变性。这在函数参数、类成员函数和接口设计中非常实用。

以上就是c++++中const T* 和 T* const的区别是什么_解析C++中不同常量指针写法的区别与用法的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1482412.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月19日 06:21:06
下一篇 2025年12月19日 06:21:21

相关推荐

发表回复

登录后才能评论
关注微信