数组之二维数组

目录

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

1、二维数组的定义 

2、二维数组的引用 

二、二维数组的赋值 

1、二维数组的初始化

三、二维数组的应用举例


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

1、二维数组的定义 

一般格式:

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

其中,常量表达式1为行数,常量表达式2为列数

例如: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]这样的格式就是错误的。

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

\bullet数组变量名后面的“[ ]”是数组的标志,里面的常量表达式可以是常量和符号常量,但是不能包含变量。 

\bullet 数据类型符表示数组元素的数据类型,可以是任何数据类型。例如常见的int型,float型,char型等。

\bullet数组变量名的命名规则与变量名相同,遵循标识符命名规则。

\bullet下标可以是整形常量、整形变量或整形表达式。

\bullet下标的最小值是0,最大值是数组大小减1。

2、二维数组的引用 

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

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

 \bullet下标1和2可以是整形常量、整形变量或整形表达式。其编号从0开始。

注意:下标不能越界

 

二、二维数组的赋值 

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");
    }
}

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值