C语言之二维数组概念

C语言之二维数组概念

语法:类型 数组名 [常量表达式] [常量表达式]
eg:int A [3]  [3];   // 3*3   3行3列
		char B [5]  [6];  //5*6  5行5列
		double c [3]  [4];   //3行4列

在这里插入图片描述
二维数组初始化:
1、a [3][4]={1,2,3,4,5,6,7,8,9,10,11,12};

a[3][4]={
{1,2,3,4},
{5,6,7,8},
{9,10,11,12}
};

[liangjian@localhost ~]$ cat test18.c
#include <stdio.h>
int main()
{
	int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
	int i,j;
	for(i=0;i<3;i++)
	{
		for(j=0;j<4;j++)
		{
			printf("%d",a[i][j]);
		}
	printf("\n");
	}
}
[liangjian@localhost ~]$ gcc  test18.c &&./a.out 
1234
5678
9101112

或:

[liangjian@localhost ~]$ cat test18.c
#include <stdio.h>
int main()
{
	int a[3][4]={
	{1,2,3,4},
	{5,6,7,8},
	{9,10,11,12}
	};
	int i,j;
	for(i=0;i<3;i++)
	{
		for(j=0;j<4;j++)
		{
			printf("%d",a[i][j]);
		}
	printf("\n");
	}
}
[liangjian@localhost ~]$ gcc  test18.c &&./a.out 
1234
5678
9101112

对某些元素进行初始化:

[liangjian@localhost ~]$ cat test18.c
#include <stdio.h>
int main()
{
	int a[3][4]={{1},{5},{9}};    //对每一行的第一个元素进行初始化操作。
	int i,j;
	for(i=0;i<3;i++)
	{
		for(j=0;j<4;j++)
		{
			printf("%d",a[i][j]);
		}
	printf("\n");
	}
}
[liangjian@localhost ~]$ gcc  test18.c &&./a.out 
1000
5000
9000
[liangjian@localhost ~]$ 

对特定元素进行初始化操作:

[liangjian@localhost ~]$ cat test18.c
#include <stdio.h>
int main()
{
	int a[3][4]={
	[0][0]=1,
	[1][1]=2,
	[2][2]=3
	};  
	//1行1列元素初始化为1,4行2列初始化为2,3行3列元素初始为3.
	int i,j;
	for(i=0;i<3;i++)
	{
		for(j=0;j<4;j++)
		{
			printf("%d",a[i][j]);
		}
	printf("\n");
	}
}
[liangjian@localhost ~]$ gcc  test18.c &&./a.out 
1000
0200[liangjian@localhost ~]$ cat test18.c 
#include <stdio.h>
int main()
{
	//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}; //只有第一维度可以省略不写(这里的3可以省略不写),4必须写,3和4不能同时不写。
	int i,j;
	for(i=0;i<3;i++)
	{
		for(j=0;j<4;j++)
		{
			printf("%d",a[i][j]);
		}
	printf("\n");
	}
}
[liangjian@localhost ~]$ gcc  test18.c &&./a.out 
1234
5678
9101112
[liangjian@localhost ~]$ vim test18.c
[liangjian@localhost ~]$ cat test18.c 
#include <stdio.h>
int main()
{
	//int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
	int a[3][]={1,2,3,4,5,6,7,8,9,10,11,12}; //只有第一维度可以省略不写(这里的3可以省略不写),4必须写,3和4不能同时不写。
	int i,j;
	for(i=0;i<3;i++)
	{
		for(j=0;j<4;j++)
		{
			printf("%d",a[i][j]);
		}
	printf("\n");
	}
}
[liangjian@localhost ~]$ gcc  test18.c &&./a.out 
test18.c: 在函数‘main’中:
test18.c:5:6: 错误:数组元素的类型不完全
  int a[3][]={1,2,3,4,5,6,7,8,9,10,11,12}; //只有第一维度可以省略不写(这里的3可以省略不写),4必须写,3和4不能同时不写。
      ^

0030
[liangjian@localhost ~]$ 

二维数组第一维度可省略,其他维度必须写上:

[liangjian@localhost ~]$ cat test18.c 
#include <stdio.h>
int main()
{
	//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}; //只有第一维度可以省略不写(这里的3可以省略不写),4必须写,3和4不能同时不写。
	int i,j;
	for(i=0;i<3;i++)
	{
		for(j=0;j<4;j++)
		{
			printf("%d",a[i][j]);
		}
	printf("\n");
	}
}
[liangjian@localhost ~]$ gcc  test18.c &&./a.out 
1234
5678
9101112
[liangjian@localhost ~]$ vim test18.c
[liangjian@localhost ~]$ cat test18.c 
#include <stdio.h>
int main()
{
	//int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
	int a[3][]={1,2,3,4,5,6,7,8,9,10,11,12}; //只有第一维度可以省略不写(这里的3可以省略不写),4必须写,3和4不能同时不写。
	int i,j;
	for(i=0;i<3;i++)
	{
		for(j=0;j<4;j++)
		{
			printf("%d",a[i][j]);
		}
	printf("\n");
	}
}
[liangjian@localhost ~]$ gcc  test18.c &&./a.out 
test18.c: 在函数‘main’中:
test18.c:5:6: 错误:数组元素的类型不完全
  int a[3][]={1,2,3,4,5,6,7,8,9,10,11,12}; //只有第一维度可以省略不写(这里的3可以省略不写),4必须写,3和4不能同时不写。
      ^
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值