C++*const*const

mat*_*rvi 5 c++ pointers const

我试图搜索答案,但我发现很难找到这种"确切"的例子.我对指针的指针知之甚少,我觉得有更多的东西存在于皮肤之下,而不仅仅是指针.

那你们怎么翻译呢?

void free(shame_1 * const * const group_1);
Run Code Online (Sandbox Code Playgroud)

如果我把它翻译为const group_1指向shame_1的const指针,我是对的吗?

谢谢.

Mar*_* J. 5

shame_1 * const * const group_1;
Run Code Online (Sandbox Code Playgroud)

声明一个名为group_1的变量,其类型是一个const指针(你不能改变它指向的位置)到另一个const指针(相同)到一个shame_1类型的对象,你可以实际改变它的值.

所以,例如,你无法编译:

group_1 = nullptr;
*group_1 = nullptr;
Run Code Online (Sandbox Code Playgroud)

但是,您可以这样做:

void f(shame_1& group) {
    //stuff that modifies group
    ...
}
f(**group1);
Run Code Online (Sandbox Code Playgroud)

正如扎金斯特评论的那样,看一下螺旋规则应该可以帮助你理解这种符号.