const T* 和T* const

在C++中,const T* 和 T* const 这两种类型都涉及到指针和常量,但它们的含义和使用场景有所不同。

  1. const T*:这是一个指向常量T的指针。这意味着你不能通过这个指针来修改它所指向的值,但你可以改变指针本身所指向的地址。换句话说,你可以改变指针指向哪里,但不能改变指针指向的内容。

例如:

const int* p = &x;
*p = 10; // 错误:不能通过const指针修改值
p = &y; // 正确:可以改变指针指向的地址
  1. T* const:这是一个常量指针,指向T。这意味着你不能改变这个指针指向的地址,但你可以通过它来修改它所指向的值。换句话说,你可以改变指针指向的内容,但不能改变指针指向哪里。

例如:

int* const p = &x;
*p = 10; // 正确:可以通过指针修改值
p = &y; // 错误:不能改变const指针指向的地址

        这两种类型的主要区别在于“const”修饰的是指针本身还是指针所指向的值。在实际编程中,const T* 通常用于保证函数不会修改传入的指针所指向的数据,而 T* const 则用于创建一旦指向某个对象就不能再改变的指针,这通常用于保证某些资源的稳定性或安全性。

        注意,const T* const 是另一种类型,它同时限制了指针本身和指针所指向的值都不能被修改。这种类型通常用于那些既需要保证数据稳定性又需要保证指针稳定性的场景。

const int* const p = &x;
*p = 10; // 错误:不能通过const指针修改值
p = &y; // 错误:不能改变const指针指向的地址

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值