gpt4 book ai didi

c++ - `const T* const` 是什么意思?

转载 作者:可可西里 更新时间:2023-11-01 18:19:08 28 4
gpt4 key购买 nike

我正在阅读一个 C++ 模板示例,模板签名的一部分让我感到困惑。

我没看错吗:

const T* const foo;

fooconst*const T 吗?

最佳答案

是的,它是一个指向常量 T 的常量指针。也就是说,您既不能修改指针,也不能修改它指向的东西。

const T* 只会禁止您修改指针指向的任何内容,但它允许您(在语言范围内)检查 *(foo+1 )*(foo-1)。当您将指针传递给不可变数组(例如您只应该读取的 C 字符串)时,请使用这种形式。

T * const 意味着您可以修改 foo 指向的 T 值,但不能修改指针本身;所以你不能说 foo++; (*foo)++ 因为第一条语句会递增(修改)指针。

T * 会给你充分的自由:你得到一个指向数组的指针,你可以检查和修改该数组的任何成员。

关于c++ - `const T* const` 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8274617/

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