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的指针的常量指针。
我想把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的指针的常量指针。