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 * 会给你完全的自由:你得到一个指向数组的指针,你可以检查和修改该数组的任何成员.