我在C的簡單代碼結束看如果三個相同字符數組所有端與'\0'
:一些字符數組不與「 0」
int main(){
char a[4] = "1234";
char b[4] = "1234";
char c[4] = "1234";
if(a[4] == '\0')
printf("a end with '\\0'\n");
if(b[4] == '\0')
printf("b end with '\\0'\n");
if(c[4] == '\0')
printf("c end with '\\0'\n");
return 0;
}
但輸出顯示,只有數組b端終止者'\0'
。這是爲什麼?我認爲所有的字符陣列都必須以'\0'
結束。
輸出:
B端側與 '\ 0'
你用4個字節的空格聲明瞭數組,但你試圖讀取字節5. – Ryan
購買一本好的初學者書。當你完成所有練習時,你可以開始在編譯器中查找錯誤:D –
「我認爲所有的char陣列都必須以'\ 0'結尾。」 - 不。所有_strings_必須以'\ 0'終止符結束,但沒有空終止符的字符數組是完全可以接受的。 –