一维数组补充:
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;
}
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;
}
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;
}
...............................................................正篇开始....................................................................
二维数组
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}};
注意事项:
1.初始化时,可以省略行进行初始化,但不可以省略列。(如完全初始化例图)
2.二维数组的行列下标都从0开始。
3.数组⼤⼩的指定只能使⽤常量、常量表达式或不进行初始化。
4.变长数组无法进行初始化。如下图所示:(使用变量作为数组长度,编译器无法事先确认)
需要注意的是:在程序运⾏的时候,根据变量的⼤⼩来指定数组的元素个数,但不等于数组的⼤⼩是可变的。数组的⼤⼩⼀旦确定就不能再变化了。
int i;
int arr[i];
今天的分享到此结束,明天见啦!