您的当前位置:首页正文

数组之二维数组

2024-11-12 来源:个人技术集锦


一、二维数组的定义与引用

1、二维数组的定义 

例如:int a[2] [3];

定义了 a是一个2行3列的数组,一共6个元素,分别是a[0] [0]、a[0] [1]、a[0] [2]、a[1] [0]、a[1][1]、a[1][2]。

像int a[2,3]这样的格式就是错误的。

二维数组的注意点与一维数组相同 

 

2、二维数组的引用 

二维数组元素引用与一维数组元素引用一样,也要采取下标法。

引用形式:数组名[下标1] [下标2] 

 

注意:下标不能越界

 

二、二维数组的赋值 

1、二维数组的初始化

一般格式:

类型说明符    数组名 [行常量表达式] [列常量表达式]={{第0行初值表},{第2行初值表},{最后1行初值表}};

赋值规则为:将“第0行初值表”中的数据,依次赋给第0行中的各元素;将“第1行初值表”中的数据,依次赋给第1行元素;以此类推。下面给出例子。

例1:对数组元素全部赋值

int a[2] [3]={ {1,2,3},{4,5,6}}; 

其数组元素各自对应的值为:a[0] [0]=1,a[0] [1]=2,a[0] [2]=3,a[1] [0]=4,a[1] [1]=5,a[1] [2]=6。

也可以将数据写在一个花括号内,按数据在内存中的排序顺序对个元素赋初值

故上式也可直接写为int a[2] [3]={1,2,3,4,5,6}; 

例2:对数组元素部分赋值

int a[2] [3]={{1},{3}};

 其数组元素各自对应的值为:a[0] [0]=1,a[0] [1]=0,a[0] [2]=0,a[1] [0]=3,a[1] [1]=0,a[1] [2]=0。

也可以对各行中的某一元素赋值

如:a[2] [3]={{0,1,0},{0,0,3}};

 其数组元素各自对应的值为:a[0] [0]=0,a[0] [1]=1,a[0] [2]=0,a[1] [0]=0,a[1] [1]=0,a[1] [2]=3。

例3:如果对全部元素都赋初值,则定义数组时对第一维的长度可以不指定,但是第二维的长度不能省。

如:int a[2] [3]={ {1,2,3},{4,5,6}};

它等价于int a[ ] [3]={ {1,2,3},{4,5,6}};

三、二维数组的应用举例

例1:将二维数组行列元素互换,存到另一个数组中

#include <stdio.h>
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");
    }
}

 

 

 

Top