以下函数定义的参数中的 2 个 const 意味着什么?
void myFunction (MyClass* const* const myObj);
从右到左阅读:
MyClass* const* const
^ ^ ^ ^ ^
| | | | 1
| | | |
| | | 2
| | 3
| 4
5
一个(1) const (2) 指针指向一个( 3) const (4) 指针MyClass
。换句话说,您不能更改指针,但MyClass
实例仍然是可变的。
参数是指向对象指针的指针。
第一个const
意味着间接指针(访问为 的指针*myObj
)不能更改。
第二个const
没有任何用处,因为myObj
它是按值传递的,并且将函数的参数的本地副本设为 be 毫无意义const
。