gpt4 book ai didi

c++ - 指针的 const 说明符

转载 作者:行者123 更新时间:2023-11-30 00:38:15 27 4
gpt4 key购买 nike

我可以声明 foo(const T& var) 这样我就知道 var 不会被改变。

指针的等效格式为 foo(const T* var)?

过去我尝试过那些,与 iterator/const_iterator 相关的错误让我很恼火,我只是倾向于使用 (T* var)不考虑常量。

是否有一个好的文档来声明强制指针指向的内容不会改变的函数?

最佳答案

你所拥有的已经是一个指针,它禁止指针对象的内容发生变化。您可以使用“向后阅读”规则看到这一点:

const T* var     <===== left to right from this read

倒着读:

var is a pointer to a T that is constant

这不同于

T* const var

上面写着:

var is a constant pointer to a T

这里的区别是常量是var,而不是T;这意味着您可以通过取消引用 var 来更改 T,但您不能更改 var 指向的内容。

当然你可以同时拥有以上两种:

const T* const var

关于c++ - 指针的 const 说明符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11359517/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com