数组(第二弹)—二维数组

一维数组补充:

1.当我们希望输出整个数组中的元素时,一般选择使用for循环(只要产⽣数组所有元素的下标就可以了)。

如下图所示:

#include <stdio.h>
int main()
{
	int arr[10]={1,2,3,4,5,6,7,8,9,10};
	int i=0;
	for(i=0; i<10; i++)
	{
		printf("%d ",arr[i]);
	}
	return 0;
}

71e8c05bf1104a039d2d20283dc85d00.png

2.当我们希望从键盘输入元素存储到数组中时,我们一样可以使用for循环来实现。

如下图所示:

#include <stdio.h>
int main()
{
	int arr[10];
	int i=0;
	for(i=0;i<10;i++) //循环输入10次元素存储在arr[10]数组中
	{
		scanf("%d",&arr[i]);
	}
	for(i=0; i<10; i++) //循环输出arr[10]中的所有元素
	{
		printf("%d ",arr[i]);
	}
	return 0;
}

0fbcd5d00e26414ea92e239f5575462f.png

3.数组随着下标的增⻓,地址是由⼩到⼤变化的,并且我们发现每两个相邻的元素之间相差4(因为⼀个整型是4个字节)。

数组在内存中是连续存放的。

4.当我们想知道数组中有多少个元素时,可以使用sizeof。sizeof 在中C语⾔是⼀个关键字,是可以计算类型或者变量⼤⼩的,其实 sizeof 也可以计算数组的⼤⼩。

如下图所示:

​#include <stdio.h>
int main()
{
int arr[10] = {0};
int sz = sizeof(arr)/sizeof(arr[0]);
printf("%d\n", sz);
return 0;
}

​

bdaebbf2484141608d8fa7329a07b2a6.png

...............................................................正篇开始....................................................................

二维数组

1.定义

二维数组:一维数组的元素都是内置类型的,当一维数组作为另一数组的元素时,该数组称为二维数组。(同理:当二维数组作为另一数组的元素时,该数组为三维数组,二维数组以上统称为多维数组)

例如:int arr [3] [5]

(3代表行,5代表每行的元素个数。)

2.二维数组初始化

与一维数组相同的是,二维数组同样使用大括号进行初始化。但分为两种:完全初始化及不完全初始化。

如下图所示:

1.完全初始化

(详细初始化数组中的每行的每个元素)如下图所示:

int arr[3][5]={1,2,3,4,5, 6,7,8,9,10, 11,12,13,14,15}

2.不完全初始化

(初始化部门元素,或不进行初始化)如下图所示:

int arr[3][5]={1,2};
inr arr[3][5]={0};

*3.按照行进行初始化

如下图所示:

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

56ef38d7d99742efbbd909f8dc043df6.png

注意事项:

1.初始化时,可以省略行进行初始化,但不可以省略列。(如完全初始化例图)

2.二维数组的行列下标都从0开始。

3.数组⼤⼩的指定只能使⽤常量、常量表达式或不进行初始化。

4.变长数组无法进行初始化。如下图所示:(使用变量作为数组长度,编译器无法事先确认)

需要注意的是:在程序运⾏的时候,根据变量的⼤⼩来指定数组的元素个数,但不等于数组的⼤⼩是可变的。数组的⼤⼩⼀旦确定就不能再变化了。

int i;
int arr[i];

今天的分享到此结束,明天见啦! 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值