<style> html, body, .ui-content { background-color: #333; color: #ddd; } body > .ui-infobar { display: none; } .ui-view-area > .ui-infobar { display: block; } .markdown-body h1{ color: #9CCEF2; } .markdown-body h2, .markdown-body h3{ color: #B1D6CA; } .markdown-body h4, .markdown-body h5, .markdown-body h6 { color: #ddd; } .markdown-body h1, .markdown-body h2 { border-bottom-color: #ffffff69; } .markdown-body h1 .octicon-link, .markdown-body h2 .octicon-link, .markdown-body h3 .octicon-link, .markdown-body h4 .octicon-link, .markdown-body h5 .octicon-link, .markdown-body h6 .octicon-link { color: #fff; } .markdown-body img { background-color: transparent; } .ui-toc-dropdown .nav>.active:focus>a, .ui-toc-dropdown .nav>.active:hover>a, .ui-toc-dropdown .nav>.active>a { color: white; border-left: 2px solid white; } .expand-toggle:hover, .expand-toggle:focus, .back-to-top:hover, .back-to-top:focus, .go-to-bottom:hover, .go-to-bottom:focus { color: white; } .ui-toc-dropdown { background-color: #333; } .ui-toc-label.btn { background-color: #191919; color: white; } .ui-toc-dropdown .nav>li>a:focus, .ui-toc-dropdown .nav>li>a:hover { color: white; border-left: 1px solid white; } .markdown-body blockquote { color: #bcbcbc; } .markdown-body table tr { background-color: #5f5f5f; } .markdown-body table tr:nth-child(2n) { background-color: #4f4f4f; } .markdown-body code, .markdown-body tt { color: #eee; background-color: rgba(230, 230, 230, 0.36); } a, .open-files-container li.selected a { color: #5EB7E0; } </style> ###### tags: `tgirc早修book` # 二維、多維陣列 ## 二維陣列的宣告 ```cpp= int ary[n][m]; int num[2][4]; ``` 第一個 `[]` 表示<font color="F5F6B6">**列(row)**</font>,在第一維;第二個 `[]` 表示<font color="F5F6B6">**行(column)**</font>,在第二維。 可以想像成是有 2 個長度為 4 的一維陣列,來儲存 2\*4 筆資料 | 列\行 | \[0\] | \[1\] | \[2\] | \[3\] | | ------ | ----- | ----- | ----- | ----- | | \[0\] | (0,0) | (0,1) | (0,2) | (0,3) | | \[1\] | (1,0) | (1,1) | (1,2) | (1,3) | 表示位置 `num[1][3]` 的值是 3: ```cpp= num[1][3] = 3; ``` ## 二維陣列的初始化 ```cpp= int num[2][4]={ {1,2,3,4}, {1,1,1,1} } ``` 二維陣列中要進行輸入輸出時,要一橫排處理完後在處理下一橫排,或是一直排處理完後在處理下一直排都可以。 <font color="F5F6B6">**採第一種方式會更有效率**</font>,因為它和 C++ 實際儲存方式最相近,也和 cin、cout 的輸出輸入順序一致 ```cpp= for(int i = 0; i < r; i++){ for(int j = 0; j < c; j++){ cin>>ary[i][j]; } } ``` ## 多維陣列 依照上述的邏輯,數個相同大小的二維陣列可以構成一個三維陣列,而數個相同大小的三維陣列可以構成四維陣列,以此類推。