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