如何在C函数中更改参数的地址?

0 c c++

在C++中,我可以这样做:

    #include <stdio.h>
    void ChangeAddress(char *&para)
    {
         char *temp = "123456";
         para = temp;
    }

    int main()
    {
    char *para = "abcdef";
    ChangeAddress(para);
    printf("%s\n",para);//123456
    return 0;
    }
Run Code Online (Sandbox Code Playgroud)

那么在C中有任何替代方式吗?

arr*_*owd 9

用指针替换引用:

#include <stdio.h>
void ChangeAddress(char ** para)
{
     char *temp = "123456";
     *para = temp;
}

int main()
{
char *para = "abcdef";
ChangeAddress(&para);
printf("%s\n",para);//123456
return 0;
}
Run Code Online (Sandbox Code Playgroud)