<分区>
所以我最近一直在研究 C,并一直在尝试理解按值/引用传递的复杂性以及在函数内操作传入变量的能力。但是,我遇到了以下障碍:
void modifyCharArray(char *input)
{
//change input[0] to 'D'
input[0] = 'D';
}
int main()
{
char *test = "Bad";
modifyCharArray(test);
printf("Bad --> %s\n", test);
}
所以我的想法是只在一个函数中修改一个char数组,然后在修改完成后打印出这个数组。然而,这失败了,因为我所做的只是修改传入的 input
的值,而不是实际的内存地址。
简而言之,有什么方法可以将 char *input
放入函数中并修改其原始内存地址,而无需使用 string.h 中的 memcpy
之类的东西?