int main(void) {
// your code goes here
char* qwe = "qwe";
qwe[2] = '\0';
printf("%s\n", qwe);
return 0;
}
我一直在搞C指針,看看我是否正確理解它們。 從代碼qwe
包含char
指針 字母'q', and can reach to 'w', 'e'
和'\0'
。 qwe[2] = *(qwe + 2)
,這是e
。我用'\0'
終止了它。現在,當我嘗試打印它時,它給了我一個分段錯誤。我期待輸出qw
。0終止它後打印C字符串
並非所有的內存地址是可寫的,一種情況是其分配給您的字符串文字編譯器的地址。 –
不,'qwe'是一個**指針**。它不是因爲你在每一本好C書和教程中找到的原因而被稱爲「數組」。 (而_array_也不是指針)。 – Olaf