首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> C 語言問答

C語言二維數組初始化陷阱:s[1][1] 到底是多少?

     編輯:C 語言問答

代碼

int s[][3] = {1,2,3,4,5,6};

記憶體佈局

編譯器按行優先自動補全為 int s[2][3]:

行 0:  1  2  3
行 1:  4  5  6

s[1][1] 即第 2 行第 2 列 → 5。

核心規則

  • 二維數組初始化時,**第一維可省略**,第二維**必須指定**。
  • 按行優先順序填充,不足按 0 補齊。
  • 等價寫法:int s[2][3] = {{1,2,3},{4,5,6}}; 更清晰,推薦使用。

延伸:指針訪問

int (*p)[3] = s;      // p 指向含3個int的數組
printf("%d", p[1][1]); // 同樣輸出 5

理解「行類型指針」是玩轉二維數組指針的關鍵。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved