【发布时间】:2016-09-14 06:20:03
【问题描述】:
我在维基百科上阅读了this(也粘贴在下面):
遵循通常的 C 声明约定,声明遵循使用,并且指针中的 * 写在指针上,表示取消引用。例如,在声明 int *ptr 中,解引用形式 *ptr 是一个 int,而引用形式 ptr 是一个指向 int 的指针。 因此 const 将名称修改到其右侧。相反,C++ 约定是将 * 与类型相关联,如 int* ptr 中,并将 const 读取为修改左侧的类型。因此 int const * ptrToConst 可以读作“*ptrToConst is a int const”(值是常量),或“ptrToConst is a int const *”(指针是指向常量整数的指针)。
我真的无法得到满意的解释:
在什么意义上修改?
name 与 type 的用途是什么(参见上面的链接)?
为什么要在
const的右边?
【问题讨论】:
-
那个链接没有任何用处。
-
我刚刚修复了链接。
-
那个维基百科部分很混乱。如果例子是
const int *ptrToConst;和const int * const constPtrToConst;,这里引用的句子会更有意义 -
看看这个你就明白了:stackoverflow.com/questions/1143262/…
-
是的,我认为它很模棱两可。我确实在那篇文章的维基“谈话”标签中写了一些注释。该链接澄清了我的正确含义:左/右意味着“*标记”(维基百科文本恕我直言至少无法解读)。所以 name == pointer, type == pointee.