如何在函数中修改作为参数传递的字符串值?
例如,我有这个函数foo
(它应该将return_string
的值从"old string"
更改为"new string"
):
int foo(char *return_string) {
char *tmp = "new string";
return_string = tmp;
return 0;
}
如果我按照以下方式调用它:
char *s = "old string";
foo(s);
printf("%s\n", s);
我仍然会输出old string
,为什么?
我承认我对C语言中指针和字符串有些困惑。