数组:存储多个相同数据类型的集合(容器)
定义数组格式: 数组类型 数组名称[元素个数]
数组初始化
1、先定义数组,再初始化
1、使用常量作为元素个数
int nums[5];
2、使用变量作为元素个数
int len = 5;
int nums[len];
注意点:
1、只有定义没有初始的数组元素是垃圾值(不确定)
2、没有初始化的数组不可以使用其中存放元素
3、先定义数组再初始化的时候只能一个一个的初始方式
2、定义数组的同时初始化
1、指定元素个数,同时进行全部显式初始化
int nums[5] = {1,2,3,4,5};
2、不指定元素个数,全部初始化
int nums[] = {1,2,3,4,5};
3、指定元素个数,部分初始化
int nums[5] = {1,2};
4、指定元素个数,给指定下标初始化
int nums[5] = {[4] = 1,[1] = 2};
注意点:
1、没有显式初始化的元素会自动被初始化为0
2、变量作为元素个数不可以使用这种方式进行初始化
3、数组的存储细节
1、数组一块连续的存储区域
2、低下标的元素在低字节地址上,高下标的元素在高字节地址上
3、数组名就是数组的首地址,和下标为0的元素的地址相同
注意点:
1、数组下标越界(不要出现这种情况)
1、约错对象
2、程序崩溃
2、什么样类型的数组里面只能存放什么类型的数据
4、数组与函数
1、基本数据类型作为函数参数传递是值传递
2、数组作为函数参数传递是地址传递
3、数组作为函数参数的时候,数组自动被转换为一个指针变量,那么会导致数组有些信息遗失,也就是说我们不可以通过函数形参来计算数组的长度
知识点回顾
1、数组:存放多个同种类型的数据的集合(容器)
格式:数组类型 数组名称[元素个数]
初始化:
1、先定义再初始化
1、使用常量作为元素个数
2、使用变量作为元素个数
2、定义的同时进行初始化
1、没有显式初始的元素系统自动初始化为0
2、使用变量作为元素个数的不可以使用这种方式进行初始化
注意点:
1、数组没有初始化里面是垃圾值(不确定的值),所有没有初始化的数组不可以使用它里面的数据
2、数组越界
1、约错对象
2、程序崩溃
3、什么样类型的数组里面只能存放什么样类型的数据
数组与函数
1、数组作为函数参数传递是地址传递
2、数组作为函数参数的时候,被自动转换为了指针类型,造成信息遗失,在函数中不可以获得数组长度信息
二维数组:数组元素是一维数组的数组
格式:数组类型 数组名称[一维数组的个数][一维数组的元素个数]
二维数组的遍历
1、外层循环控制第一个下标
2、内层循环控制第二个下标
定义数组格式: 数组类型 数组名称[元素个数]
数组初始化
1、先定义数组,再初始化
1、使用常量作为元素个数
int nums[5];
2、使用变量作为元素个数
int len = 5;
int nums[len];
注意点:
1、只有定义没有初始的数组元素是垃圾值(不确定)
2、没有初始化的数组不可以使用其中存放元素
3、先定义数组再初始化的时候只能一个一个的初始方式
2、定义数组的同时初始化
1、指定元素个数,同时进行全部显式初始化
int nums[5] = {1,2,3,4,5};
2、不指定元素个数,全部初始化
int nums[] = {1,2,3,4,5};
3、指定元素个数,部分初始化
int nums[5] = {1,2};
4、指定元素个数,给指定下标初始化
int nums[5] = {[4] = 1,[1] = 2};
注意点:
1、没有显式初始化的元素会自动被初始化为0
2、变量作为元素个数不可以使用这种方式进行初始化
3、数组的存储细节
1、数组一块连续的存储区域
2、低下标的元素在低字节地址上,高下标的元素在高字节地址上
3、数组名就是数组的首地址,和下标为0的元素的地址相同
注意点:
1、数组下标越界(不要出现这种情况)
1、约错对象
2、程序崩溃
2、什么样类型的数组里面只能存放什么类型的数据
4、数组与函数
1、基本数据类型作为函数参数传递是值传递
2、数组作为函数参数传递是地址传递
3、数组作为函数参数的时候,数组自动被转换为一个指针变量,那么会导致数组有些信息遗失,也就是说我们不可以通过函数形参来计算数组的长度
知识点回顾
1、数组:存放多个同种类型的数据的集合(容器)
格式:数组类型 数组名称[元素个数]
初始化:
1、先定义再初始化
1、使用常量作为元素个数
2、使用变量作为元素个数
2、定义的同时进行初始化
1、没有显式初始的元素系统自动初始化为0
2、使用变量作为元素个数的不可以使用这种方式进行初始化
注意点:
1、数组没有初始化里面是垃圾值(不确定的值),所有没有初始化的数组不可以使用它里面的数据
2、数组越界
1、约错对象
2、程序崩溃
3、什么样类型的数组里面只能存放什么样类型的数据
数组与函数
1、数组作为函数参数传递是地址传递
2、数组作为函数参数的时候,被自动转换为了指针类型,造成信息遗失,在函数中不可以获得数组长度信息
二维数组:数组元素是一维数组的数组
格式:数组类型 数组名称[一维数组的个数][一维数组的元素个数]
二维数组的遍历
1、外层循环控制第一个下标
2、内层循环控制第二个下标