1、数组基本内容:
数组使用
下标
数组读写数据
数组的使用案例
二维数组
2、数组的概念及使用
a. 数组就是存储多个相同数据类型的数据。
b.先定义再使用
1.数组定义的格式
存储数据---空间 ---- 数据类型
多少个 --- 数据个数
>> 数据类型 数组名[数据个数];
标识符: 数字 字母 _ $
不能以数字开头
不能和关键字重复
例:
存储班级的平均分--班级有20个人
存储数据 -- 成绩 --- float
数据个数:20
float scores[20];
2、数组的下标
定义数组后,数组会为空间进行编号,从0开始,到数据个数-1 ---- 规定
用数组的时候切记不要超标
3、数组的空间访问
数组名[下标]
------------------------------------------------------------------------------------------------------------
| // 数组定义 -[总个数] | // 数组使用 --- [下标] |
------------------------------------------------------------------------------------------------------------
| int a[5]; | // a[0] a[1] a[2] a[3] a[4] ---- int |
------------------------------------------------------------------------------------------------------------
例:
int a[5];
a[0] = 10;
a[1] = 20;
a[2] = 90;
a[3] = 45;
a[4] = 5;
// int res;
// res = (a[0] + a[1] + a[2] + a[3] + a[4]) / 5;
// printf("%d\n",res);
// 把数组中的所有数据输出一下
// printf("%d ",a[0]);
// printf("%d ",a[1]);
// printf("%d ",a[2]);
// printf("%d ",a[3]);
// printf("%d ",a[4]);
练习:
//定义一个数组用来存放10个int的数据,通过输入的形式往空间里面赋值。
//1、输出每个空间的数据
//2、求这一组数据中的最小值和最大值
#include <stdio.h>
int main(void)
{
int arr[10],i,max,min; // 最小数和最大数的下标
printf("Please input 10 integer numbers:\n");
for(i=0;i<10;i++)
{
scanf("%d",&arr[i]);
}
printf("输入的10个数如下:\n");
max=min=0;
for(i=0;i<10;i++)
{
printf("%d ",arr[i]);
if(arr[max]<arr[i])
{
max=i;
}
if(arr[min]>arr[i])
{
min=i;
}
}
printf("\n最大值是:%d\n最小值是:%d\n",arr[max],arr[min]);
return 0;
}
4、数组的初始化
初始化就是定义时候给
int a; // 定义
a = 10; // 赋值
int a = 10; //a初始化
----------------------------------------------
int a[5] = {1,7,9,10,20};
int b[5] = {1,2,3}; // {1,2,3,0,0}初始化的时候没有赋值的空间补0
int c[5] = {1,2,3,4,5,6,7}; // {1,2,3,4,5} 初始化超出部分舍弃
// 省略个数的初始化,后面{}有几个值就开几个空间
int d[] = {1,2,3}; //int d[3] = {1,2,3};
错误:不要写 不要写 不要写!!!!
int e[]; //定义的时候不能省略,不然不知道开多少空间
int f[] = {}; // 不会开空间
int t[] = {0}; // 开1个空间 ,没有必要用数组了
注意:数组只能在初始化的时候整体赋值。
int a[5];
a = {1,2,3,4,5}; // 错误的,数组名是一个常量 ,通常情况下是数组首元素地址0x0062fe50
5、数组要素分析:
-- 数组的定义上看
数组中数据的类型(元素类型):除了 数组名[数据个数] 剩下的就是里面存放的数据的类型
数组的类型: 除了 数组名 剩下的就是数组的类型
数组名: 数组名称[]前面的
---------------------------------------------------------------------------------------------------------------------------------例:
int a[5];
数组中数据的类型(元素类型): int
数组的类型:int [5]
数组名:a
数据个数:5
int *b[3];
数组中数据的类型(元素类型): int *
数组的类型:int *[3]
数组名:b
数据个数:3
void (*p[3])(void);
数组中数据的类型(元素类型): void (*)(void)
数组的类型:void (*[3])(void);
数组名:p
数据个数:3
------------------------------------------------------------------------------
总结:
数组的概念
数组使用
定义:数据类型 数组名[数据总个数];
数组下标:0 ~ 数据个数-1
数组访问空间:数组名[下标]
数组初始化
数组的要素分析