数组板板书
1.数组的概念
2.一维数组的创建和初始化
创建基本语法:
type arr_name[常量值]
例:储存班级20人的数学成绩,创建数组math
int math[20];
根据需要创建其他类型和大小的数组:
double score[10];
数组初始化
//完全初始化
int arr1[5]={1,2,3,4,5,};
//不完全初始化:第一个元素初始化为1,剩余元素默认初始化为0
int arr2[3]={1,2};
//错误初始化:初始化项太多。
int arr3[3]={1,2,3,4,5};
数组的类型
int arr1[10]; 类型是 int [10]
char ch[5];类型是 char [5]
3.一维数组的使用
数组下标
假设一组数组有n个元素,那最后一个元素的下标是n-1,下标相当于数组元素的编号
下标引用操作符 ====> : [ ]
数组元素打印
数组的输入
4.一维数组在内存中的存储
#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("&arr[%d] = %p\n ",i,&arr[i]);
}
return 0;
}
sizeof计算数组元素个数
sizeof 是C语言中的一个关键字,可以计算类型或者变量大小,也可以计算数组大小。
- 计算数组大小
#include <stdio.h>
int main()
{
int arr[10]={0};
printf("%d\n",sizeof(arr));
return0;
}
#include <stdio.h>
int main()
{
int arr[10] = { 0 };
int sz = sizeof(arr) / sizeof(arr[0]);//计算元素的大小,单位是字节
printf("%d\n", sz);
return 0;
}
- 计算数组的元素个数:
#include <stdio.h>
int main()
{
int arr[10] = { 0 };
int sz = sizeof(arr) / sizeof(arr[0]);
//表示数组中有10个元素
printf("%d\n 看不懂看注释", sz);
return 0;
}
二维数组的创建
-
二维数组的概念
我们把一维数组作为数组的元素,此时就是二维数组
-
二位数组的创建
type arr_name[常量1][常量2];
例如:
int arr[3][5];
double data[2][8];
解释:
3表示数组有3行
5表示每一行有五个元素
int 表示数组的每个元素是整数类型
arr是数组名,可根据自己的需要指定名字。
data数组意思基本一致
07二维数组的初始化
不完全初始化
int arr1[3][5]={1,2};
int arr2[3][5]={0};
完全初始化
int arr3[3][5] = {1,2,3,4,5, 2,3,4,5,6, 3,4,5,6,7};
按照行初始化
int arr4[3][5] = {{1,2},{3,4},{5,6}};
初始化时省略行,但是不能省略列
int arr5[][5]={1,2,3};
int arr6[][5]={1,2,3,4,5,6,7};
int arr7[][5]={{1,2},{3,4},{5,6}};
08二维数组的使用
二维数组下标:根据行业列定位一个元素
#include <stdio.h>
int main()
{
int arr[3][5]={1,2,3,4,5, 2,3,4,5,6, 3,4,5,6,7};
printf("%d\n",arr[2][4]);
return 0;
}
二维数组的输入输出
已知如何访问二维数组单个元素,如何访问整个二维数组
#include <stdio.h>
int main()
{
int arr[3][5]={1,2,3,4,5, 2,3,4,5,6, 3,4,5,6,7};
int i=0;//遍历行
//输入
for(i=0;i<3;i++)//产生列号
{
scanf("%d",&arr[i][j]);//输入数据
}
}
//输出
for(i=0;i<3;i++)//产生行号
{
int j=0;
for(j=0;j<5;j++)//产生列号
{
printf("%d ",arr[i][j]);//输出数据
}
printf("\n");
}
return 0;
}