C语言 二维数组定义和使用 - C语言零基础入门教程
目錄
- 一.二維數(shù)組簡(jiǎn)介
- 二.定義二維數(shù)組并初始化
- 1.定義二維數(shù)組
- 2.初始化二維數(shù)組
- 三.訪問二維數(shù)組
- 四.修改二維數(shù)組
- 五.猜你喜歡
零基礎(chǔ) C/C++ 學(xué)習(xí)路線推薦 : C/C++ 學(xué)習(xí)目錄 >> C 語言基礎(chǔ)入門
一.二維數(shù)組簡(jiǎn)介
在 C 語言中,一組數(shù)據(jù)的集合稱為數(shù)組 Array ,也稱為一維數(shù)組,比如:字符串 char ,實(shí)際上也算是數(shù)組,字符串由多個(gè)字符構(gòu)成;
而二維數(shù)組和一維數(shù)組類似,簡(jiǎn)單理解就是:二維數(shù)組由多個(gè)一維數(shù)組構(gòu)成,語法如下:
type arrayName [ x ][ y ]; //x的取值范圍:0 <= index < x 下標(biāo)重0開始,最大值為x-1,否則會(huì)產(chǎn)生下標(biāo)越界 //y的取值范圍:0 <= index < y 下標(biāo)重0開始,最大值為y-1,否則會(huì)產(chǎn)生下標(biāo)越界因此,數(shù)組中的每個(gè)元素是使用形式為 a[ i , j ] 的元素名稱來標(biāo)識(shí)的,其中 a 是數(shù)組名稱,i 和 j 是唯一標(biāo)識(shí) a 中每個(gè)元素的下標(biāo)。
二維數(shù)組中的每一個(gè)數(shù)據(jù)叫做數(shù)組元素 Element ,二維數(shù)組中的每個(gè)元素都有一個(gè)序號(hào),這個(gè)序號(hào)由 x 和 y 組成(即橫向坐標(biāo)和縱向坐標(biāo)),都是從 0 開始,例如,a[0][6] 表示第1行第7個(gè)元素,a[3][1] 表示第 4 行第2個(gè)元素;
舉個(gè)例子:定義一個(gè)這樣的二維數(shù)組
int a[3][4]={{1,3,5,7},{9,11,13,15},{17,19,21,23}};[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-vho32HiP-1629616389974)(https://www.codersrc.com/wp-content/uploads/2021/06/e4da3b7fbbce234.png “C語言 二維數(shù)組定義和使用-猿說編程”)]
二維數(shù)組本質(zhì)就是一個(gè)一維數(shù)組。如果把二維數(shù)組的每一行看成一個(gè)整體,即看成一個(gè)數(shù)組中的一個(gè)元素,那么整個(gè)二維數(shù)組就是一個(gè)一維數(shù)組。
二.定義二維數(shù)組并初始化
1.定義二維數(shù)組
要想把數(shù)據(jù)放入內(nèi)存,必須先要分配內(nèi)存空間。例如:放入4個(gè)一維數(shù)組,8個(gè)整數(shù),即 4 行 8 列:
//整形數(shù)組 int a[4][8];//由4個(gè)一維數(shù)組構(gòu)成,索引值0~3;每個(gè)一維數(shù)組中有8個(gè)整形變量,索引值0~7; //浮點(diǎn)數(shù)數(shù)組 float a[4][8];//由4個(gè)一維數(shù)組構(gòu)成,索引值0~3;每個(gè)一維數(shù)組中有8個(gè)浮點(diǎn)數(shù)變量,索引值0~7; //浮點(diǎn)數(shù)數(shù)組 double a[4][8];//由4個(gè)一維數(shù)組構(gòu)成,索引值0~3;每個(gè)一維數(shù)組中有8個(gè)浮點(diǎn)數(shù)變量,索引值0~7; //字符串 char a[4][8];//由4個(gè)一維數(shù)組構(gòu)成,索引值0~3;每個(gè)一維數(shù)組中有8個(gè)字符變量,索引值0~7;2.初始化二維數(shù)組
A.在定義二維數(shù)組的同時(shí)賦值
多維數(shù)組可以通過在括號(hào)內(nèi)為每行指定值來進(jìn)行初始化。下面是一個(gè)帶有 3 行 4 列的數(shù)組。
int a[3][4] = {{0, 1, 2, 3} , /* 初始化索引號(hào)為 0 的行 */{4, 5, 6, 7} , /* 初始化索引號(hào)為 1 的行 */{8, 9, 10, 11} /* 初始化索引號(hào)為 2 的行 */ };內(nèi)部嵌套的括號(hào)是可選的,下面的初始化與上面是等同的:
int a[3][4] = {0,1,2,3,4,5,6,7,8,9,10,11};B.根據(jù)二維數(shù)組下標(biāo)對(duì)數(shù)組元素賦值
在通過下標(biāo)修改二維數(shù)組的值時(shí),需要注意 數(shù)組下標(biāo)越界 的問題;
a[4][2]; //定義一個(gè)二維數(shù)組 a[0][0]=10; a[0][1]=20; a[1][0]=30; a[1][1]=40; a[2][0]=50; a[2][1]=60; a[3][0]=70; a[3][1]=80; //a[0][3]=20; //錯(cuò)誤寫法,下標(biāo)越界 //a[0][2]=20; //錯(cuò)誤寫法,下標(biāo)越界 //a[4][2]=20; //錯(cuò)誤寫法,下標(biāo)越界 等價(jià): a[4][2]= {10,20,30,40,50,60,70,80} 等價(jià): a[4][2] = {{10,20},{30,40},{50,60},{70,80} }C.只給部分元素賦初值,當(dāng){ }中值的個(gè)數(shù)少于元素個(gè)數(shù)時(shí),只給前面部分元素賦值,后面的元素默認(rèn)為0值
//案例一 int a[3][4] = {{1},{2},{3}}; 等價(jià): int a[3][4] = {{1,0,0,0},{2,0,0,0},{3,0,0,0}}; //案例二 int a[3][4] = {{1}}; 等價(jià): int a[3][4] = {{1,0,0,0},{0,0,0,0},{0,0,0,0}};當(dāng)賦值的元素少于數(shù)組總體元素的時(shí)候,剩余的元素自動(dòng)初始化為 0:
對(duì)于short、int、long,就是整數(shù)0; 對(duì)于char,就是字符 '\0'; 對(duì)于float、double,就是小數(shù)0.0。三.訪問二維數(shù)組
**數(shù)組中的每個(gè)元素都有一個(gè)序號(hào),這個(gè)序號(hào)從 0 開始,稱為下標(biāo) index ,例如,a[0][2] 表示第 1 行第 3 個(gè)元素,a[3][5] 表示第 4 行第 6 個(gè)元素。所以我們可以直接通過下標(biāo)訪問數(shù)組中元素的值,**例如:
/******************************************************************************************/ //@Author:猿說編程 //@Blog(個(gè)人博客地址): www.codersrc.com //@File:C語言教程 - C語言 二維數(shù)組定義和使用 //@Time:2021/06/12 08:00 //@Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅(jiān)持不懈地積累! /******************************************************************************************/#include <stdio.h> int main(void) {int a[3][4] = {{1,2,3,4},{2,4,6,8},{3,6,9,0}};for (int i = 0 ;i<3;i++) {for(int j = 0;j<4;j++)printf("a[%d][%d] = %d ",i,j,a[i][j]);//根據(jù)下標(biāo)查詢//換行printf("\n");}return 0; } /* 輸出: a[0][0] = 1 a[0][1] = 2 a[0][2] = 3 a[0][3] = 4 a[1][0] = 2 a[1][1] = 4 a[1][2] = 6 a[1][3] = 8 a[2][0] = 3 a[2][1] = 6 a[2][2] = 9 a[2][3] = 0 */四.修改二維數(shù)組
**我們既然可以通過數(shù)組下標(biāo)訪問數(shù)組的值,那么同樣也可以使用下標(biāo)修改數(shù)組的值,**例如:
/******************************************************************************************/ //@Author:猿說編程 //@Blog(個(gè)人博客地址): www.codersrc.com //@File:C語言教程 - C語言 二維數(shù)組定義和使用 //@Time:2021/06/12 08:00 //@Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅(jiān)持不懈地積累! /******************************************************************************************/#include <stdio.h> int main(void) {int a[3][4] = {{1,2,3,4},{2,4,6,8},{3,6,9,0}};for (int i = 0 ;i<3;i++) {for(int j = 0;j<4;j++)printf("a[%d][%d] = %d ",i,j,a[i][j]);//根據(jù)下標(biāo)查詢//換行printf("\n");}printf("-------------------------------------------\n");//修改數(shù)組的值for (int i = 0 ;i<3;i++) {for(int j = 0;j<4;j++)a[i][j] *= 10 ;//等價(jià) a[i][j] = a[i][j] * 10//換行printf("\n");}//查詢修改后數(shù)組的值for (int i = 0 ;i<3;i++) {for(int j = 0;j<4;j++)printf("a[%d][%d] = %d ",i,j,a[i][j]);//根據(jù)下標(biāo)查詢//換行printf("\n");}return 0; } /* 輸出: a[0][0] = 1 a[0][1] = 2 a[0][2] = 3 a[0][3] = 4 a[1][0] = 2 a[1][1] = 4 a[1][2] = 6 a[1][3] = 8 a[2][0] = 3 a[2][1] = 6 a[2][2] = 9 a[2][3] = 0 ------------------------------------------- a[0][0] = 10 a[0][1] = 20 a[0][2] = 30 a[0][3] = 40 a[1][0] = 20 a[1][1] = 40 a[1][2] = 60 a[1][3] = 80 a[2][0] = 30 a[2][1] = 60 a[2][2] = 90 a[2][3] = 0 */五.猜你喜歡
未經(jīng)允許不得轉(zhuǎn)載:猿說編程 ? C 語言 二維數(shù)組定義和使用
總結(jié)
以上是生活随笔為你收集整理的C语言 二维数组定义和使用 - C语言零基础入门教程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python 线程互斥锁 Lock -
- 下一篇: BugkuCTF-MISC题只有黑棋的棋