四、二維陣列的引用
五、二維陣列的操作
六、是否存在真正的多維陣列
型別說明符 陣列名 [常量表示式(行)][常量表示式(列)]
a[2][3] 代表乙個2行3列的陣列
第一列第二列
第三列第一行
a[0][0]
a[0][1]
a[0][2]
第二行a[1][0]
a[1][1]
a[1][2]
a[i][j] 代表第i+1行,第j+1列
實際上二維陣列的儲存也是線性的,是在記憶體單元中開闢乙個連續的記憶體空間
模擬一維陣列
整型單元
a[0]
a[1]
a[2]
位址1000
1004
1008
二維陣列的儲存
整型單元
a[0][0]
a[0][1]
a[0][2]
a[1][0]
a[1][1]
a[1][2]
位址1000
1004
1008
1012
1016
1020
1. 第一種
int a[2]
[3]=
;
第一列第二列
第三列第一行12
3第二行45
6
2. 第二種
int a[2]
[3]=
,
};
1. 第一種
int a[3]
[4]=
;//其他所有元素則預設為0;
2. 第二種
//這種只適合部分編譯器
int a[3]
[4]=
,,}
3. 第三種
int a[3]
[4]=
,,}
4. 第四種
int a[3]
[4]=
,}
5. 第五種
int a[
4]=;
//這種編譯器會根據輸入的元素,自動計算這是個幾行4列的陣列;
//注意不能省略列數!!!
陣列名[行標][列標]
a[0]
[1]=
5;a[i+3]
[a[0][
5]]=a[0]
[1]*
2;
下標可以是整型表示式
int
main
(void),
,};int i,j;
for(i=
0;i<3;
++i)
printf
("\n");
}return0;
}
#include
#include
/*輸出函式
*/void
show
(int a[
5])printf
("\n");
}}/*求每一行的最大元素
*/void
max_row
(int a[
5])}
printf
("第%d行最大元素是:%d\n"
,i+1
,a[i][4
]);//a[行][最後一列列標]}}
/*求該陣列的最大元素,並返回其下標。
*/void
max(
int a[
5])}
}printf
("該陣列中元素的最大值是:%d\n其行標是:%d,其列標是:%d\n"
,max,row,colum);}
intmain
(void),
,,,,
};show
(a);
max_row
(a);
max(a)
;system
("pause");
return0;
}
指標學過後再補充12
4723
5845
6978
910如上圖所示,這是乙個對稱矩陣
int
main
(void),
,,,}
;int i=0;
int j=0;
for(i=
0;i<4;
++i)}}
printf
("這是乙個對稱矩陣!");
return0;
}
不存在
因為記憶體是線性一維的
n維陣列可以當做每個元素是n-1維陣列的一維陣列
以二維陣列為例:
int a[3][4]
該陣列是含有3個元素的一維陣列
只不過每個元素都相當於乙個包含4個元素的一維陣列。
二維陣列 二維陣列和指標
include using namespace std int main 如上面這段程式所示,通過取位址符 指標 p 獲得了變數 a 的位址,那麼解引用符 就可以從 p 中得到變數 a 的值。也就是說,p a和 p a是等價的。p 是變數 a 的位址,從 p 中就可以取出 a 的值。反之,能從 p ...
陣列 二維陣列
一組相同型別的資料組合,是一種引用型別。陣列名稱不是固定的,與其存放的資料的型別有關。如 存放int型別的資料,陣列名稱 int 存放字串資料,陣列名稱 string 存放scanner型別的資料,陣列名稱 scanner陣列中的每個資料,都是這個陣列的元素。1 宣告 元素型別 變數名 元素型別 變...
陣列 二維陣列
陣列,從名字很簡單看出就是數字組合,一堆數 一堆元素 在一起。然後看一下怎麼定義,怎麼初始化。陣列的動態初始化 初始化之後每個元素的儲存內容為其對應資料型別的預設值。資料型別 陣列名 new 陣列型別 大小 int arr new int 5 資料型別 陣列名 new 陣列型別 大小 int arr...