程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> c-為什麼輸出的是hellohello

c-為什麼輸出的是hellohello

編輯:編程綜合問答
為什麼輸出的是hellohello

圖片說明

新人渣渣,求大神勿噴,帶我裝逼帶我飛.....

最佳回答:


首先,你的前兩行變量定義等價於:

    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
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved