1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 【C语言】二维数组定义以及引用

【C语言】二维数组定义以及引用

时间:2020-04-21 02:20:20

相关推荐

【C语言】二维数组定义以及引用

接着上面一期进行,二维数组的一些了解,代码均来自于VS编译环境下。

一、怎样定义二维数组

二维数组和一维数组一样,二维数组的定义方式如下:

类型说明符 数组名[常量表达式][常量表达式]

注意一个方括号中不能放两个下标,二维数组这种特殊的表示方式又可以看作是一种特殊的一维数组。其次二维数组中的元素是按顺序存放的,我们自己理解的时候可以理解为矩阵,矩阵是按二维形式存放的,但事实上二维数组是线性排列的,不是二维的,这一点要特别注意。

C语言中还允许使用多维数组,这些是可以,但实际中我们用的还是比较少的,我们可以了解一下。在二维以及多维中普遍具有一个特性,就是数组中最靠左的下标变化最快,最右面的变化最慢,大家可以自行观察。

二、怎样引用二维数组

二维数组的引用形式为:

数组名[下标][下标]

数组元素可以出现在表达式中,也可以被赋值,注意行序号和列序号都是从0开始的,切忌超出范围出现非法访问的情况,例如:int a[3][4]中最后一个元素是a[2][3],而不是a[3][4],这样访问C语言的编译器不会报错,但是是错误的,这种问题需要我们自己进行避免。

三、二维数组的初始化

(1)分行给二维数组进行初始化

int a[2][3]={{123},{456}};

这样给二维数组进行赋值会比较清晰,一行一行进行,不会遗漏数据,如果数据中有大量0时,可以少输入一些,而让系统进行自动初始化,例如:

//4 0 0//5 0 0int a[2][3]={{4},{5}};

以这种形式输入后,每行剩余的系统会自动补0;这样可以少输入一些数据,比较方便一点。

(2)直接初始化,不进行分行处理

直接初始化就如同一维数组一样,将所有元素都堆在一起,系统根据初始化的行和列来自动进行规划,这样就不如第一种效果好,大量数据堆在一起不容易查出错误,也容易遗漏数据。

如果进行全部初始化,数组的行也可以省略,但是列不可以省略,系统可以根据元素总个数和列数自动排列每行几个数据,特别要注意数组的初始化是在定义时同时进行的,不可以单独拿出来进行初始化。

四、二维数组的举例

【例1】有一个3*4的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。

#include <stdio.h>int main(){int i,j,row=0,colum=0,max;int [3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}};max=a[0][0];for(i=0;i<=2;i++)for(j=0;j<=3;j++)if(a[i][j]>max){max=a[i][j];row=i;colum=j;}printf("max=%d\nrow=%d\ncolum=%d\n",max,row,colum);return 0;}

输出结果:

到此二维数组结束,之后会继续进行字符数组的写作,有需要的尽请期待。

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