新人渣渣,求大神勿噴,帶我裝逼帶我飛.....
首先,你的前兩行變量定義等價於:
char a[6] = {'h', 'e', 'l', 'l', 'o', 0};
char b[5] = {0, 0, 0, 0, 0}
注意 a 實際有 6 個元素,且最後一個是 0.
在內存中,這兩個變量實際是連續存儲的:
0, 0, 0, 0, 0, 'h', 'e', 'l', 'l', 'o', 0
也就是 b 在前,a 在後。
當你執行循環後,這一段內容變為:
'h', 'e', 'l', 'l', 'o', 'h', 'e', 'l', 'l', 'o', 0
在執行輸出時,printf 尋找b之後的第一個 0 作為結尾,也就 printf 是從前面的 h 到最後的 0 之前一個文字全部輸出,因此結果是
hellohello