从不可变字符串返回const char **

时间:2019-07-23 12:10:29

标签: c pointers string-literals

我要设置将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;
}

1 个答案:

答案 0 :(得分:0)

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

#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指针的常量指针。

相关问题