苍老师班里面有5个学生,经过了一次考试,需要保存这5个学生的成绩需要5个变量
100个学生
又经历一次考试,每个学生的成绩都要保存起来要保存100个数据,就需要用100个变量,非常的不方便
所以我们就在想有没有一种变量,可以保存100个不同的数据
有!
数组!
数组就可以用1个变量保存多个不同的数据
数组的语法:
类型 数组名[正整数];
正整数就是你这个变量要保存多少个数据
例:int nums[10]; //保存10个int数据
char chs[5]; //保存5个字符数据
如果访问数组中的每个数据
取值:
数组名[编号];
例:nums[0]; //取第一个元素 也可以称之为 取下标为0的元素
赋值:
nums[0] = 30; //给第一个元素赋值 给下标为0的元素赋值
元素:就是小空间里面实际存放的数据
下标/索引:就是小空间的编号
长度:数组实际能保存的数据的个数
注意点:
数组的下标最大值 = 长度 - 1;
数组的定义:
语法:
类型 数组名[长度];
数组的赋值:
首先要注意,数组没法像基本类型数据一样可以直接变量名 = 值
1.先声明,后赋值
类型 数组名[长度];
数组名[下标] = 数据;
2.在声明的时候初始化
1) 类型 数组名[长度] = { 数据1,数据2,数据3,………… 数据n};
例: int nums[3] = {10,20,30};
2) 类型 数组名[] = { 数据1,数据2,数据3,………… 数据n};
意思就是,不给长度的时候,编译器会自动根据你右边的数据个数来判断你的长度
例: int nums[] = {30,20,50}; //长度是?长度是3
3)类型 数组名[长度] = {数据1,数据2}; 简而言之就是给的数据小于长度
例: int nums[5] = {1,2}; //长度是?长度就是5,只不过你给下标0,下标1赋值了,其他没有赋值
4)类型 数组名[长度] = { [下标] = 数据1,[下标] = 数据2,………………};
例: int nums[5] = { [3]=1 ,[2]=2,[0]=10,[1]=20,[4]=100 };
遍历数组:
就是用循环依次访问数组中的每一个元素
数组的越界:
就是访问了不属于自己空间的元素
运行时会报错,也可能是未知的异常!
最大的可访问的下标 = 长度 - 1
计算数组的长度:
sizeof(数组名)
得到这个数组占用内存的总长度
公式:
sizeof(数组名) / sizeof(数组类型);