小编给大家分享一下c语言中二维数组如何使用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
类型说明符 数组名[ 常量表达式][ 常量表达式];
例如:
int arr[3][4]
表示定义了一个 3×4,即 3 行 4 列总共有 12 个元素的数组 a。这 12 个元素的名字依次是:a[0][0]、a[0][1]、a[0][2]、a[0][3];a[1][0]、a[1][1]、a[1][2]、a[1][3];a[2][0]、a[2][1]、a[2][2]、a[2][3]。
与一维数组一样,行序号和列序号的下标都是从 0 开始的。元素 a[i][j] 表示第 i+1 行、第 j+1 列的元素。数组 int a[m][n] 最大范围处的元素是 a[m–1][n–1]。所以在引用数组元素时应该注意,下标值应在定义的数组大小的范围内。
此外,与一维数组一样,定义数组时用到的“数组名[常量表达式][常量表达式]”和引用数组元素时用到的“数组名[下标][下标]”是有区别的。前者是定义一个数组,以及该数组的维数和各维的大小。而后者仅仅是元素的下标,像坐标一样,对应一个具体的元素。
1) 分行给二维数组赋初值,如:
int a[3][4]={{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};
这种赋初值的方法比较直观,把每行看作一个元素,按行赋初值。
2) 也可以将所有数据写在一个花括号内,按数组排列的顺序对各元素赋初值。比如:
int a[3][4]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};
3) 也可以只对部分元素赋初值。比如:
int a[3][4]={{1, 2}, {5}, {9}};
4) 如果在定义数组时就对全部元素赋初值,即完全初始化,则第一维的长度可以不指定,但第二维的长度不能省。比如:
int a[3][4]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};
等价于:
int a[][4]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};
系统会根据数据总数和第二维的长度算出第一维的长度。但这种省略的写法几乎不用,因为可读性差。
5) 二维数组“清零”,里面每一个元素都是零,如下:
int a[3][4]={0};
在一维数组中是用一个 for 循环进行输入输出,而二维数组元素的输入输出要使用两个 for 循环嵌套。
下面有一个小例题,大家可以用来练练手:
//输入一个3行4列的二维数组的元素值//调用一个自定义函数求二维数组每列元素中的最小值的和值//和值通过返回值传回主函数输出 # include“stdio.h" int和(int arr[3][4])//定义一个二维数组 { int和=0; for (int i=0;我& lt;4;我+ +) { int arr min=[0][我]; for (int j=1;j & lt;3;j + +)//找出每列最小元素 如果(最低的在加勒比海盗[j][我]) min=arr [j][我]; 和+=最小;//每列最小元素相加 } 返回总和; } int main () { arr int [3] [4]; for (int i=0;我& lt;3;我+ +)//行 for (int j=0;j & lt;4;j + +)//列 scanf (“% d",, arr[我][j]);//输入数组元素 int r=总和(arr); printf (“% d \ n", r);//输出每列最小元素之和 返回0; }
实现结果:
1 2 3 4 0 2 5 9 0 1 3 1 3
以上是c语言中二维数组如何使用的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!