数组的简单应用 一
- 什么是数组
- 是用来存储一组数据的容器
- 数组的用处
- 用于把同一类型的一组数据统一管理起来
- * 应用场所*
- 需要统一管理一组有关联的额数据的时候
- 声明数组的语法
- 数据类型 数组名[数组的长度]; int arr[3]
- 数据类型 : 指的是数组中每一个元素的数据类型
- 数组名 : 是不包含中括号
几个专业术语
- 元素: 数组中的每一个小空间、
- 下标: 元素在数组的位置 从0开始
- 长度: 数组宏元素的个数,也就是这个数组最多能容纳的数据的个数
- int arr[100];
- arr 数组名;
- 100: 元素个数
注意点
- 为元素赋值的时候, 赋值的数据类型一定要和元素的类型一致
- 赋值的时候 下标不能越界,如果下标越界就会产生难以预料的结果
取出数组元素的值
int nums[3];
nums[0] = 10;
nums[1] = 20;
nums[2] = 30;
- 要取出一个元素
- int num1 = 数字名[元素的下标];
- 注意 下标千万不能越界
遍历数组
- 假设有数组 int nums[数组的长度];
for(int i = 0;i < 数组的长度;i++){
nums[i];//这个就是数组中的每一个元素
//打印每一个元素
//可以求和
//比较求最大值,求最小值...
}
- 数组的长度问题
- 声明数组的长度的时候 必须要指定数组的长度
- 数组的长度一般是常量
- 还可以是 变量 和表达式的结果
- 字符 (长度是字符的ASCII码)
- 数组的长度不能是小数也不能是负数
- 数组的长度可以是1 或0, 但是没有意义
数组元素的初始化
- 定义的同事初始化: 静态初始化
int nums[5] = ...//
1)int nums[3] = {1,2,3}//指定长度全部初始化
2)int nums[] = {1,2,3,4}//不指定长度全部初始化
3)int nums[5] = {1,2}//指定长度 部分初始化
//奇葩初始化
4)int nums[5] = {[0] = 10,[3] = 50}
只要是静态初始化,那么没有被初始化的元素自动默认为0
先定义后初始化: 动态初始化
- 挨个赋值,没有被赋值的元素自动默认为是垃圾值
数组元素所有都初始化为0
- int num[10] = {0};
数组在内存中的存储方式
- 数组在内存中 也是从高字节向低字节申请连续的
(数组的长度 * 每一个元素的字节数)个字节的空间 数组的地址
- 数组的地址 == 数组中最低字节的地址== 数组中下标为0的元素的读字节的地址 == 数组中下标为0的元素的最低值 == 数组名
- 数组名是一个变量, 这个变量储存了数组的地址
- 所以打印数组名的时候 应该用%p
计算数组的长度
- 数组的长度 就是指数组中元素的个数
- 利用 sizeof 计算
- sizeof(数组在内存中占用的字节数) /sizeof(单个元素字节数)
- sizeof(nums) / sizeof(int)