我想将一个 cstring 传递给一个函数并覆盖它。
#include <stdio.h>
void changeStr(char* str1)
{
str1 = "foo";
}
int main()
{
char* aStr = "abc123";
printf("%s\n", aStr);
changeStr(aStr);
printf("%s\n", aStr);//aStr is still the same :(
return 0;
}
我尝试将 a&
放在 aStr 和*
str1 前面,但随后程序崩溃。为什么这不起作用?下面的推理不是和这里一样吗?