#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char *abc = "abc";
char *new_str;
new_str = getStr(&abc);
printf("%s", abc);
}
char *getStr(char *str)
{
printf(str);
return str;
}
Run Code Online (Sandbox Code Playgroud)
上面的代码有什么问题?
一堆小东西:
你传递&abc给getStr().&abc是指向保存字符串的变量的指针.它的类型是一个指向指针的指针,它与char *strgetStr()的参数不兼容.
您的getStr()使用后定义.您需要将其定义移至之前main()或之前添加原型main().
字符串文字的类型"abc"是const char *.您正在定义一个类型的变量char *,这是可疑的(因为它允许您修改字符串文字,这是不允许的).