【发布时间】:2016-01-09 07:08:51
【问题描述】:
假设我有一个指向整数的指针数组(即每个元素都是一个指向 int 的指针)
int** ptrArray;
并且我想防止更改数组条目所指向的整数
我需要把 const 放在哪里?
1. const int ** ptrArray
2. int const ** ptrArray
3. int *const* ptrArray
4. int ** const ptrArray
这有什么规则吗? 比如“第一个 const 保护数据”、“第二个 const 保护指针”等等?
const 的位置背后有什么逻辑吗? 放置位置和保护对象之间有什么联系吗?
这对我来说是一个非常令人困惑的问题,如果有人可以给我任何指南或链接,我可以根据我想要保护的内容阅读更多关于如何以及在何处使用 const 的信息(如果我需要在 3 维数组中使用 const 左右)
【问题讨论】:
-
"我有一个指向整数的指针数组" 你实际上拥有的是一个指向
int的指针。 -
是的,我知道。但这与问题有什么关系?
-
这与您对数组和指针(以及更普遍的语言)的理解绝对相关,这是问题及其答案的关键组成部分。不要耸耸肩。如果您“知道”,请不要在问题中弄错!
-
那你就知道错了。注意。数组不是指针(尽管有时这种语言可能会让人感到困惑。)
-
juanchopanza 我被教导说数组是一个指针......你能澄清一下你说“数组不是指针”的意思吗?
标签: c++ arrays pointers constants