`const T*const`是什么意思?

use*_*112 7 c++ pointers const

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

我是否正确阅读:

const T* const foo;
Run Code Online (Sandbox Code Playgroud)

foo一个const*以一个const T

Fre*_*Foo 10

是的,它是一个常量指针T.即,你既不能修改指针,也不能修改指向的指针.

const T*只禁止你做任何修改指针指向,但它可以让你(语言的范围内)检查的价值*(foo+1)*(foo-1).当您将指针传递给不可变数组(例如您应该阅读的C字符串)时,请使用此表单.

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

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


nik*_*vic 0

是的,我认为 var(const) 的名称让你感到困惑。