5 2二維陣列

2021-10-07 10:15:59 字數 2653 閱讀 5084

四、二維陣列的引用

五、二維陣列的操作

六、是否存在真正的多維陣列

型別說明符 陣列名 [常量表示式(行)][常量表示式(列)]

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...