我做了一個函數,它改變了字符串,參見下面的代碼。傳遞字符串文字作爲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