为什么我不能改变char指针的内容?

时间:2016-06-09 07:44:22

标签: c

void test(char *str2) {
    *str2 = "bbbb";
}

int main(void) {
    char *str1="aaaa";
    test(str1);
    return EXIT_SUCCESS;
}

str1*str2*指向相同的地址,为什么我无法在测试函数中更改str1的值? 谢谢所有

1 个答案:

答案 0 :(得分:0)

您无法修改str1的值,因为test()无法知道str1的位置。要让被调用者修改调用者的局部变量,请将指针传递给应修改的内容。

void test(char **str2){*str2 = "bbbb";}
int main(void) {char *str1="aaaa";test(&str1);return EXIT_SUCCESS;}