标准c语言03

it2023-09-02  70

数组: 什么是数组:相同类型的变量的组合,是一种批量定义变量的方式 定义: 类型 数组名[数量]; int arr[5]; == int num1,num2,num3,num4,num5;

使用:数组名[下标]; 下标:从0开始,范围:0 ~ 数量-1

遍历:与for循环配合使用,使用循环变量 i 当做数组的下标

初始化:类型 数组名[数量] = {1,2,3,4,5…}; 1、数组与普通变量是一样默认值是随机,为安全也要对数组进行初始化 2、这种初始化语法只能在定义数组时使用,而且不能整体赋值 3、如果初始化数据过多,编译器会丢弃,并产生警告 4、如果初始化数据不足,编译器则补0 5、初始化数组时长度可以省略,编译器会自动统计数据的个数,然后告诉数组 sizeof(arr)/sizeof(arr[0]) == 数组长度

练习1:定义一个长度为10的数组并初始化,计算出最大值,最小值,以及平均值。 练习2:定义一个长度为10的数组并初始化,进行升序排序

a b c d e 0 1 2 3 4

数组越界:

为了程序的运行效率,不会检查数组的下标 数组越界的后果:

1、一切正常 2、段错误 3、脏数据

练习3:定义一个长度为10的数组并初始化,找出数组中第二大的值。

二维数组: 一维数组相当于把变量排成一排,通过编号访问。 二维数组相当于把变量排成矩阵,通过行号和列号来访问。

定义:类型 数组名[行数][列数]; int arr[3][5]; [0,0][0,1][0,2][0,3][0,4] [1,0][1,1][1,2][1,3][1,4] [2,0][2,1][2,2][2,3][2,4] 使用:数组名[行下标][列下标] 行下标: 0~行数-1 列下标: 0~列数-1 遍历:需要与双层for循环配合,外层循环负责遍历行,内层循环负责遍历列 for(int i = 0;i < 3;i++) { for(int j = 0;j < 5;j++) { printf("%d “,arr[i][j]); } printf(”\n"); } 初始化:类型 数组名[行数][列数] = {{第一行},{第二行},{第三行}};

练习4:定义一个5*5二维数组,找出数组中的最大值的坐标,然后计算出来这个位置周围的和。

变长数组: 定义数组时使用变量作为数组的长度,在代码编译期间数组的长度是不确定,当执行到数组定义语句时,长度才能确定下来。 一旦数组长度确定后,不能改变。

优点:可以根据实际情况来确定数组的长度,能达到节约内存目的 缺点:不可以初始化

最新回复(0)