数组
数组是一组相同类型元素的集合
数组中存放的是一个或者多个数据,数组元素个数不能为零
数组中存放的多个数据类型是相同的
数组分为一维数组和二维数组
我们先来认识一下一维数组
一维数组
一维数组的创建和初始化
先来了解一下数组创建(❁´◡`❁)
type arr_name[常量]={这里是初始化}
type就是数组的类型,可以是int、char、double……
arr_name是这个数组的名字
[]中的常量数字就是数组的大小
我们来创建一个整型类型大小为10名字为zxsz的数组
int main()
{
int zxsz[10] = { 1,2,3,4,5,6,7,8,9,10 };
return 0;
}
这就是一个数组的创建
再看一下初始化
初始化有完全初始化和不完全初始化
上面数组创建的例子就是一个完全初始化,就是把数组的每一个元素都初始化,方法就是那样
不完全初始化
int main()
{
int zxsz[10] = { 1,2,3,4,5 };
return 0;
}
也可以只初始几个元素,这就是不完全初始。
如果没有想要初始化的可以这样做
int zxsz[10] = { 0 };
这样数组中所有的元素都被初始化为0了
数组的访问
访问数组,那就先来了解一下数组的下标
如上图是一个大小为10的整型数组,存放1到10的数字,第一个元素1对应的数组下标为0,以此类推第10个元素对应的下标为9。
我们可以通过数组下标来打印或输入数组
像这样,下标为7的数组对应第8个元素。
打印数组,向数组中输入
已经知道了数组下标,简单的利用一下循环就可以打印数组了,这里我们拿for循环举例
#include<stdio.h>
int main()
{
int zxsz[10] = { 1,2,3,4,5,6,7,8,9,10 };
for (int i = 0;i < 10;i++)
{
printf("%d ", zxsz[i]);
}
return 0;
}
输入也是相同的方法
#include<stdio.h>
int main()
{
int zxsz[10] = { 0 };
for (int i = 0;i < 10;i++)
{
scanf("%d", &zxsz[i]);
}
for (int i = 0;i < 10;i++)
{
printf("%d ", zxsz[i]);
}
return 0;
}
一维数组再内存中的存储
先来看一下这个代码的运行结果
%p用来打印地址
计算机内存地址是以16进制的方式来存储的,该数组相邻元素的地址相差都为4,而一个整形占内存大小就是4个字节,这说明了数组的存储是连续的,随着数组下标的增长,地址是由小到大的。
把数组类型改为长整型,地址就相差8。
最后,关于数组元素个数的计算,可以使用sizeof()
sizeof是一个关键字,可以计算类型或者变量的大小。
#include<stdio.h>
int main()
{
long long zxsz[10] = { 1,2,3,4,5,6,7,8,9,10 };
int sz = sizeof(zxsz) / sizeof(zxsz[0]);
printf("%d", sz);
return 0;
}
它的打印输出结果就是10。
感谢观看,有错误请指出,