在C中(我想这也适用于C++),有什么区别
char str[4] = "abc";
char *cstr = {"abc"};
Run Code Online (Sandbox Code Playgroud)
当我尝试将"abc"传递给接受char**的函数时出现问题
void f(char** s)
{
fprintf(stderr, "%s", *s);
}
Run Code Online (Sandbox Code Playgroud)
执行以下操作会产生编译器错误.如果转换为char**(使编译器满意)程序seg错误.
f(&str);
Run Code Online (Sandbox Code Playgroud)
但是以下工作正常
f(&cstr[0]);
Run Code Online (Sandbox Code Playgroud)