c ++指针数组中的const限定符

Ada*_*dam 0 c++ arrays pointers const

假设我有一个指向整数的指针数组(即每个元素都是指向int的指针)

int** ptrArray;
Run Code Online (Sandbox Code Playgroud)

我想阻止更改数组条目指向的整数

我需要把const放在哪里?

1. const int ** ptrArray
2. int const ** ptrArray
3. int *const*  ptrArray
4. int ** const ptrArray
Run Code Online (Sandbox Code Playgroud)

对此有什么规定吗?像"第一个const保护数据","第二个const保护指针"等等?

const的位置背后是否有任何逻辑?放置的地方与保护的地方之间有什么联系?

这对我来说是一个令人困惑的问题,如果有人可以给我任何指导或链接,我会真的很高兴我可以阅读更多关于如何以及在何处使用const基于我想要保护的内容(如果我需要使用三维数组中的const或左右)

Lig*_*ica 5

对此有什么规定吗?像"第一个const保护数据","第二个const保护指针"等等?

是:const适用于左边,除非那里没有任何东西,然后它适用于右边.

因此,这个:

int const** ptrArray;
Run Code Online (Sandbox Code Playgroud)

但是,作为特例,这是等效的:

const int** ptrArray;
Run Code Online (Sandbox Code Playgroud)

这意味着通用的模式const int x;实际上 int const x;的化身.