首页 > IT职业 > IT职场 > 物联网学习教程——二维数组的引用
二维数组元素的表示形式为:
数组名[下标][下标]
例如: a [ 2 ][ 3 ]
下标可以是整型表达式,如 a [ 2-1 ][ 2*2-1 ]
不要写成 a [ 2 , 3 ], a [ 2-1 , 2*2-1 ]形式
数组元素可以出现在表达式中,也可以被赋值
例如:b [ 1 ][ 2 ] =a [ 2 ][ 3 ] /2
在使用数组元素时,应该注意下标值应在已定义的数组大小的范围内。
常出现的错误有:
int a [ 3 ][ 4 ] ; /* 定义 a 为 3 × 4 的数组 */
┆
a [ 3 ][ 4 ] =3;
数据类型
数组名 [ 常量表达式 1][ 常量表达式 2] ={ 初始化数据 };
可以用下面4 种方法对二维数组初始化:
1. 分行给二维数组赋初值。
例如: int a [ 3 ][ 4 ] ={{1 , 2 , 3 , 4} , {5 , 6 , 7 , 8} , {9 , 10 , 11 , 12}};
2. 可以将所有数据写在一个花括号内,按数组排列的顺序对各元素赋初值。

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};
在定义时也可以只对部分元素赋初值而省略第一维的长度,但应分行赋初值。
例如:int a [][ 4 ] ={{0 , 0 , 3} , {} , {0 , 10}};

二维数组程序举例
例4 将一个二维数组行和列元素互换,存到另一个
二维数组中。

#include <stdio.h>
void main()
{
int a [ 2 ][ 3 ] ={{1 , 2 , 3} , {4 , 5 , 6}};
int b [ 3 ][ 2 ], i , j;
printf( ″ array a: \ n ″ );
for (i=0;i<=1;i++)
{
for (j=0;j<=2;j++)
{
printf( ″ %5d ″, a [ i ][ j ] );
b [ j ][ i ] =a [ i ][ j ] ;
}
printf( ″\ n ″ );
}
printf( ″ array b: \ n ″ );
for (i=0;i<=2 ; i++)
{
for(j=0;j<=1;j++)
printf("%5d ″, b [ i ][ j ] );
printf( ″\ n ″ );
}
} /* 程序结束 */

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

程序:
#include <stdio.h>
void main()
{
int i , j , row=0 , colum=0 , max;
int a[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 , row=%d , colum=%d \ n ″,
max , row , colum);
} /* 程序结束 */
最后:
关注回复“物联网”即可获取物联网全套视频教程
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69914734/viewspace-2656019/ ,如需转载,请注明出处,否则将追究法律责任。