我做了一个函数,它改变了字符串,参见下面的代码。传递字符串文字作为char *通过参数
void Test(char* str, char c) {
str[1] = c;
}
int main(){
Test("Hi", '2');
}
我注意到它做了一些运行时错误。我知道如何防止错误。
char buff[3] = "Hi";
Test(buff,'2');
但我不知道为什么第一个示例运行时错误。我猜,如果我直接传递字符串,它会变成const char。有人解释究竟发生了什么吗?
ps。 如果我使用char * str =“hi”,然后将它传递给参数?
char* buff = "Hi";
Test(buff,'2');
这样子。我可以修改爱好者吗?
阅读一些有关'为const char *'。 –
这不再是合法的C++(因为不应该编译)并且从来没有错。 – chris
最后一个是新的,我认为它应该是'char * buff',但仍然没有。无论你如何解决这个问题,使用指向非常量数据的指针指向常量数据将永远不会工作。 – chris