oph*_*coe 0 c++ pointers const
根据我对使用const类型限定符和指针的理解,它取决于你使用它的位置.
const MyType *
Run Code Online (Sandbox Code Playgroud)
意味着该位置无法修改,但该位置的值可以.
MyType const *
Run Code Online (Sandbox Code Playgroud)
意味着可以修改位置,但不能修改位置的值.
由此,我认为没有理由不能使以下内容无效,
const MyType const *
Run Code Online (Sandbox Code Playgroud)
定义一个位置固定的指针,并且无法修改指向的值.但是,这就是"不止一次使用相同类型的限定符".我应该忽略这个吗?我对指针上下文中const语义的理解是否有缺陷?
你有点误解了语法.事实上
const MyType *
Run Code Online (Sandbox Code Playgroud)
和
MyType const *
Run Code Online (Sandbox Code Playgroud)
意思相同:底层MyType对象是不变的.使指针本身不变的语法是:
MyType * const
Run Code Online (Sandbox Code Playgroud)
因此,如果你想要两者都是常数,你会使用:
MyType const * const
Run Code Online (Sandbox Code Playgroud)
要么:
const MyType * const
Run Code Online (Sandbox Code Playgroud)
一种记住这个的方法是:常量是关键字左边的东西const(*指针或MyType对象),除非左边没有任何内容:在这种情况下它是对.
| 归档时间: |
|
| 查看次数: |
204 次 |
| 最近记录: |