c传递一个字符串to function然后返回一个字符串

fri*_*nds 0 c

#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)

上面的代码有什么问题?

Joh*_*eek 6

一堆小东西:

  1. 你传递&abcgetStr().&abc是指向保存字符串的变量的指针.它的类型是一个指向指针的指针,它与char *strgetStr()的参数不兼容.

  2. 您的getStr()使用后定义.您需要将其定义移至之前main()或之前添加原型main().

  3. 字符串文字的类型"abc"const char *.您正在定义一个类型的变量char *,这是可疑的(因为它允许您修改字符串文字,这是不允许的).