1.数组的概念
数组是一组相同类型元素的集合
>数组中存放的是一个或多个数据,但数组元素个数不能为零。
>数组中存放的多个数据类型是相同的。
>数组分为一维数组和多维数组,多维数组比较常见的是二维数组。
2.一维数组的创建和初始化
2.1 数组的创建
1 type name[常量值];
type是数组中存放数据的类型,可以是char,short,int double等,也可以是自定义类型
name是数组的名字
常量值是指定数组的大小
列如
char ch[8];
double scor[10];
2.2 数组的初始化以及其类型
>数组算是一种自定义类型,去掉数组名留下的部分极为数组的类型
》初始化如下
>数组的类型
1 int arr1[10];
2 double arr2[12];
arr1数组的类型是int [10]
arr2数组的类型是double [12]
3.一维数组的输出和打印
3.1 数组是有下标的,首元素的下标为0,末元素的下标为数组能储存元素个数减1。
而访问数组即用下标访问的。
访问如下
3.2数组的输出和打印
#include <stdio.h>
int main()
{
int arr[10]={0};
for(int i=0;i<10;i++)
{
scanf("%d",&arr[i]);
}
for(i=0;i<10;i++)
{
printf("%d ",arr[i]);
}
return 0;
}
输出结果如下
4.一维数组的存储及元素个数的计算
4.1数组在内存中的存储
#include <stdio.h>
int main()
{
int arr[10]={0};
for(int i=0;i<10;i++)
{
scanf("%d",&arr[i]);
}
for(i=0;i<10;i++)
{
printf("arr[i]=%p \n",arr[i]);//%p用来打印地址
}
return 0;
}
打印结果如下
从以上结果可以看出,数组随着下标增长,地址是由小到大变化的,并且两相邻的元素之间相差4,(因为一个整型为4个字节),所以数组在内存中是连续存放的。
4.2 用sizeof来计算数组元素的个数
#include <stdio.h>
int main()
{
int arr[]={1,2,3,4,5,6}
printf("%d",sizeof(arr[0]));//计算的是数组中单个元素的大小
printf("%d",sizeof(arr));//计算的是数组整体的大小
printf("%d",sizeof(arr)/sizeof(arr[0]));//二者相除极为数组中可存放的元素的个数
return 0;
}
这里的结果是6,表示数组arr中可以存放6个元素.
6.二维数组的创建
6.1把一维数组作为数组的元素,此时即为二维数组,二维数组作为数组的元素就被称为三维数组,二维数组以上的数组称为多维数组。
6.2二维数组的创建
type name[常量值1][常量值2]
type表示元素的类型
常量值1表示行数
常量值2表示列数
列如
int arr[3][4];
double arr2[4][3];
< 3表示arr数组有三行,4表示每行有4个元素
7.二维数组的初始化
二维数组的初始化与一维数组的初始化类似
7.1不完全初始化
7.2完全初始化
7.3按照行初始化
7.4初始化时省略行但不能省略列
8.二维数组的输出输入
8.1二维数组输出
#include <stdio.h>
int main()
{
int arr[3][5]={0};
int i=0;
for(i=0;i<3;i++)
{
for(int j=0;j<5;j++)
{
scanf("%d",&arr[i][j]);
}
}
for(i=0;i<3;i++)
{
for(j=0;j<5;j++)
{
printf("%d ",arr[i][j]);
}
printf("\n");
}
return 0;
}
输出如下
二维数组在内存中的存储与一维数组类似
9.C99中的变长数组
C99给了一变长数组,允许我们可以使用变量来指定数组的大小
int n=a+b;
double arr[n];
//arr数组的大小即为变量n来决定
//数组arr即为变长数组,他的长度取决于n,编译器无法事先确定,只能在运行时才知道,所以变长数组是不能初始化的。
gcc编译器上测试
#include <stdio.h>
int main()
{
int n=0;
scanf("%d",&n);
int arr[n];
int i=0;
for(i=0;i<n;i++)
{
scanf("%d",&arr[i]);
}
for(i=0;i<n;i++)
{
printf("%d ",arr[i]);
}
return 0;
}
输入5,输出结果如下
好了,今天关于数组的分享就到这里了,祝大家生活愉快,身体健康,万事顺意,那我们就下次再见了!!!!