前日知识点回顾:
2.数组的基本使用.
2.1 特点
a.可以存储多个数据。
b.存储的多个数据的类型相同。
c.长度固定。
d.存储在数组中的数据方便管理。
2.2 语法:
元素类型 数组名[长度];
int arr[3];
数组名叫做arr 长度是3元素的类型是int
arr的类型int数组
2.3 存储数据,使用下标。
2.4 取出数据。
2.5 遍历.
2.6 注意点。
a.数组的长度。
b.数组元素的默认值。
C.数组元素的初始化。
int arr[] = {10,210,2,12,1,21,3,124,1,4};
int arr[]={0};
当声明数组的同时使用大括号初始化数组元素的时候 数组的长度不能是1个变量。
3.数组在内存中的存储
int arr[3];
数组的地址。
数组名中就是数组地址。
数组的地址==数组名=数组的低字节的地址==数组的第0个元素的地址=数组的第0个元素的低字节地址
计算数组的长度。
sizeof(数组名)/每1个元素占用的字节数.
4.数组与函数.
当数组作为函数的参数的时候。
传递实参数组的时候会丢失数组的长度,所以在函数的内部使用sizeof计算参数数组的长度的时候是算不出来的。
再多给1个参数 让调用者把数组的长度也一并传递过来.
5.数组的算法
a.求大值、最下值、累加和、平均值。
b.判断指定的数据释放包含在数组中
c.找出指定的数据在数组中的下标。
d.产生不重复的随机数
e.选择排序 冒泡排序 二分查找。
P231 二维数组的声明
二维数组就是一个有行有列的表格。
我们声明了1个二维数组,就等于在内存中创建了指定行指定列的1个表格来存储数据
1.二维数组首先是1个数组,所以它符合数组的特点:
a.元素类型相同
b.存储的数据个数固定
c.方便管理数据
2.二维数组的特点:
二维数组是一个有行有列的的表格。
使用单元格来存储数据,单元格就是一个二维数组的元素。
3.声明二维数组的语法
元素类型 数组名字[行数][列数];
int arr[3][4]
4.几个术语:
1.元素:元素就是这个表格的每一个单元格,所以二维数组真正存储数据的就是表格的每一个单元格
2.下标:元素的下标。二维数组的每一个元素下标有2个,一个行下标,一个列下标。 arr[1,2]
3.长度:我们一般认为长度是单元格的个数。行*列
P232 如何在二维数组中存储数据
1.二维数组真正存储数据的就是表格的每一个单元格,元素。
所以,在存储数据的时候 必须要确定 到底要存储到哪一个元素之中。
使用下标来确定二维数组中的元素,二维数组的元素的下标有2个,航下表,列下标。
int arr[3][4];
arr[1][2] = 100;
讲100存到arr数组第1行第2列的那个元素里。
2.为二维数组的元素赋值的数据的类型要和元素的类型一致,否则就会做自动类型转换。
3.行列下标请不要越界。否则就有可能会造成程序崩溃的问题。
P233 取出二维数组的元素的值和遍历二维数组
1.如何从二维数组中取出数据。
1.1 二维数组中真正存储数据的是表格中的每1个单元格.元素.
所以,你要取数据就要先确定到底要取那1个元素的数据。
通过下标来确定,而二维数组的元素的下标有2个.
二维数组名[行下标][列下标];
1.2.行列下标不要越界。
2.遍历二维数组
for (int x = 0 ; x < 行数 ; x++) //外层循环控制行数
{
for (int y = 0 ; y < 列数 ; y++) //内层循环控制列数
{
arr[x][y];
//printf("arr[%d][%d] = %d\n",x,y,arr[x][y]);
}
}
P234 二维数组的行数列数以及默认值的问题
1.使用二维数组要注意的地方.
1.1 关于二维数组的行数和列数
a.在声明二维数组的时候 必须要指定行数和列数。
b.并且这个行数和列数:可以是变量、常量、宏、表达式.也可以是1也可以是0
行数和列数不能是小数、负数。
1.2 关于二维数组的元素的默认值。
如果我们声明1个二维数组 没有为这个二维数组的元素。
这个二维数组的元素是有值的 值是1个垃圾值。
P235 二维数组的初始化
1.全部初始化。
a.先声明,再使用下标来初始化。
b.在声明的同时,就初始化数组的每一个元素。
int arr[3][4]=
{
{10, 20, 30, 40},//第0行的数据
{50, 60, 70, 80},//第1行的数据