2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > C语言 二维数组定义和使用 - C语言零基础入门教程

C语言 二维数组定义和使用 - C语言零基础入门教程

时间:2022-01-28 17:46:11

相关推荐

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,二维数组中的每个元素都有一个序号,这个序号由xy组成(即横向坐标和纵向坐标),都是从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)(/wp-content/uploads//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(个人博客地址): //@File:C语言教程 - C语言 二维数组定义和使用//@Time:/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] = 4a[1][0] = 2 a[1][1] = 4 a[1][2] = 6 a[1][3] = 8a[2][0] = 3 a[2][1] = 6 a[2][2] = 9 a[2][3] = 0*/

四.修改二维数组

**我们既然可以通过数组下标访问数组的值,那么同样也可以使用下标修改数组的值,**例如:

/******************************************************************************************///@Author:猿说编程//@Blog(个人博客地址): //@File:C语言教程 - C语言 二维数组定义和使用//@Time:/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] = 4a[1][0] = 2 a[1][1] = 4 a[1][2] = 6 a[1][3] = 8a[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] = 40a[1][0] = 20 a[1][1] = 40 a[1][2] = 60 a[1][3] = 80a[2][0] = 30 a[2][1] = 60 a[2][2] = 90 a[2][3] = 0*/

五.猜你喜欢

安装 Visual Studio安装 Visual Studio 插件 Visual AssistVisual Studio 卸载Visual Studio / 卸载C 语言格式控制符/占位符C 语言逻辑运算符C 语言三目运算符C 语言逗号表达式C 语言 sizeof 和 strlen 函数区别C 语言 strcpy 和 strcpy_s 函数区别C 语言 memcpy 和 memcpy_s 区别C 语言 数组定义和使用C 语言 数组遍历C 语言 数组排序 – 冒泡法排序C 语言 数组排序 – 选择法排序C 语言 数组排序 – 插入法排序C 语言 数组排序 – 快速法排序C 语言 数组下标越界C 语言 数组内存溢出C 语言 数组下标越界和内存溢出区别C 语言 二维数组定义和使用

未经允许:猿说编程 » C 语言 二维数组定义和使用

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。