一、概念
一组相同类型元素的集合(可以存放一个或多个元素),即存放一组数据。其中,相同类型是指数组中每个元素的类型相同。
二、一维数组的创建和初始化
2.1 数组创建
基本语法
type arr_name[常量值]
#include <stdio.h>
int main()
{
int data[10];
char ch[5];
double arr[8];
return 0;
}
2.2 数组的初始化
#include <stdio.h>
int main()
{
int arr1[10] = {0};//0,0,0...0(十个)
int arr2[10] = {1,2,3};//1,2,3,0,0...0
return 0;
}
2.3 数组类型
int arr [10] ;//arr数组的类型是什么?
int 是arr数组的元素类型,去掉名字之后,剩下的则为数组类型。
#include <stdio.h>
int main()
{
int arr1[10] = {0};
char arr2[5] = {0};
printf("%2d\n",sizeof(arr1));//sizeof 计算数组的大小
printf("%2d\n",sizeof(int [5]);
return 0;
}
三、一维数组的使用
3.1 数组下标
C语言规定数组是有下标的,下标从0开始。其中下标就相当于数组元素的编号。
int arr[10] = {1,2,3,4,5,6,7,8,9,10};
数组 1 2 3 4 5 6 7 8 9 10
下标 0 1 2 3 4 5 6 7 8 9
#include <stdio.h>
int main()
{
int arr[10] = {1,2,3,4,5,6,7,8,9,10};//初始化之后,前面的10可以省略
printf("%d",arr[5]);//元素6
return 0;
}
操作符[ ],称为下标引用操作符。
3.2 数组元素打印
打印下标(利用循环)
#include <stdio.h>
int main()
{
int arr[] = {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;
}
输入输出下标
#include <stdio.h>
int main()
{
int arr[] = {0};
int i = 0;
for(i=0;i<10;i++)
{
scanf("%d",&arr[i]);
}//输入
for(i=0;i<10;i++)
{
printf("%d",arr[i]);
}
return 0;
}
一个整型4个字节
int sz = sizeof(arr) / sizeof(arr[0]);
3.3 求数组的元素个数
#include <stdio.h>
int main()
{
int arr[10] = {0};
printf("zd\n",sizeof(arr);//计算的是数组的总大小,单位是字节
printf("zd\n",sizeof(arr[0]);//计算的是数组中一个元素的大小,单字节
printf("zd\n",sizeof(arr)/sizeof(arr[0]);//计算的是数组元素的个数
return 0;
}
3.4 一维数组在内存中的存储
将其地址打印出来
#include <stdio.h>
int main()
{
int arr[10] = {1,2,3,4,5,6,7,8,9,10};
int i = 0;
int sz = sizeof(arr) / sizeof(arr[0]);
for(i=0;i<sz;i++)
{
printf("&arr[%d]=%p\n",i,&arr[i]);
}
return 0;
}
%p_专门用来打印地址(16进制形式)
数组在内存中是连续存放的,随着下标的增长,地址是由小到大变化的。