week3——数组

大家好,这周主要是对数组的学习,随着学习的深入,难度也逐渐增加
因为平时课业繁忙,所以只能在周末的时候进行额外的学习,所以学习进度比较慢,希望大家不要介意啊
那我接下来给大家整理yi
什么是数组:变量的组合,是一种定义变量的手段。

定义:类型 数组名[数量];

数组定义后,默认值同样不确定,因此也需要初始化。

 int arr[5] <==> int num1,num2,num3,num4,num5;

使用:数组名[编号]
编号 (下标) 从0开始,范围[0,数量-1]

遍历:配合for循环从头到尾显示,循环变量i就当做数组的下标。
int arr[5];

 for(int i=0;i<5;i++)
{
 printf("%d ",arr[i]);
 }


初始化:	int arr[5] = {1,2,3,4,5};

1、如果初始化数据不足补零。

2、如果初始化数据过多会丢弃,但是会产生警告

3、如果有初始化数据,可以省略数组的长度,因为编译器会统计数组的个数,然后告诉数组

4、只能给元素逐个赋值,不能给数组整体赋值。

sizeof(arr):计算出数组的总字节数
sizeof(arr[0]):计算出数组的第一个元素的字节数

计算数组的长度:sizeof(arr)/sizeof(arr[0]);

二维数组: 一维数组可以看作把变量排成一排,二维数组相当于把变量排成一个方阵。

也可以认为二维数组是由多个长度相等的一维数组构成。

定义:类型 数组名[行数][列数];
int arr[3][5];
[][][][][]
[][][][][]
[][][][][]

使用:数组[行号][列号];

行号和列号都是从0开始,范围[0,数量-1];
arr[0][0] arr[0][1] arr[0][2] arr[0][3] arr[0][4]
arr[1][0] arr[1][1] arr[1][2] arr[1][3] arr[1][4]
arr[2][0] arr[2][1] arr[2][2] arr[2][3] arr[2][4]

遍历:双层for循环,外层循环负责行号,内层循环负责列号

初始化:

1、分段赋值
int arr[3][5]={{1,2,3,4,5},{11,12,13,14,15},{21,22,23,24,25}};
2、连续赋值
int arr[3][5]={1,2,3,4,5,11,12,13,14,15,21,22,23,24,25};
3、未赋值的元素自动补零

4、初始化时,行数可以省略,但是列数不可以。

  int arr[][5]={{1,2,3,4,5},{11,12,13,14,15},{21,22,23,24,25}};

变长数组:

什么是变长数组:指的是数组在编译期间长度还不确定,在运行期间可以发生变化,当执行到数组定义语句的时候,数组的长度就确定下来(一旦确定,不能改变)

优点:可以根据程序运行期间的实际需要,灵活设置数组的长度,达到节省内存的目的。

缺点:不能初始化(因为数组的初始化是在编译的帮助下完成,但是变长数组的长度在编译期间还不确定,因此不能初始化)

数组的越界:
在C语言中使用数组时,是不对下标进行检查的(检查会浪费大量的时间,降低效率),数组下标的正确完全靠程序员自觉。

数组越界的后果:

1、一切正常

2、段错误

3、脏数据

函数:
C语言中的管理代码的最小单位,一个函数就是一段具有某项功能的代码。
通过调用(函数名(参数))的方式执行,执行完后再返回调用位置。

标准库函数:
C语言标准委员会以函数的形式为C语言提供了一些最基础的功能,集中在libc库中,这些函数在任意的系统、任意的编译器下都可以使用。

stdio.h 头文件中有printf/scanf

stdlib.h 头文件中有abs/system/srand/rand/malloc/free

string.h 头文件中的函数跟字符串处理相关的函数

time.h 头文件中有time

随机数:
把所有的正整数顺序打乱存储到计算机中,用的时候从任意位置去获取,需要程序员自己设置获取的位置,如果位置是相同的那么获取到的数也是相同的。
srand():设置获取随机数的位置
rand():获取随机数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值