Return 来自不可变字符串的 const char**

Return const char** from immutable string

我想把return一个const char*设置成char** 我希望编译器验证 char*.

没有变化

正确的语法应该是什么样的?

const char* str = "some str";
void test(char const **out_str) {
    *out_str = str;
}

编辑:

也许是这样的?

char* const str = "some str";
void test(char** const out_str) {
    *out_str = str;
}

这是一个演示程序,展示了如何调用该函数。

#include <stdio.h>

void test( char const **out_str ) 
{
    const char *str = "some str";
    *out_str = str;
}

int main( void )
{
    const char *p;

    test( &p );

    puts( p );
}

程序输出为

some str

字符串文字具有静态存储持续时间。所以代码是有效的。

至于这个声明char** const那么它表示一个指向char的指针的常量指针。