<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];
}
}
```
## 多維陣列
依照上述的邏輯,數個相同大小的二維陣列可以構成一個三維陣列,而數個相同大小的三維陣列可以構成四維陣列,以此類推。