1.数组的作用
用来存储多个数据的。
2.特点
a.可以存储多个数据
b.1个数组中只能存储类型相同的多个数据,是我们在创建数组的时候指定的,比如int arr[4];就代表我这数组可以存储4个int类型的数据。
c.数组中可以存储的数据的个数是固定的,int arr[4];这个数组的长度就是4,不可变了。
d.存储在数组中的数据太方便管理了,拿到这个数组就拿到这数组中的数据了。
3.如何声明1个数组的
1)在创建数组之前,首先要确定亮点
a.确定存储这多个数据的类型,当然必须是同一类型的。
b.这个数组最多可以存储多少个数据的
2)声明数组的语法
数据类型 数组名[这个数组最多可以存储多少个数据];
int arr[5];
array 数组
代表创建了一个数组,这个数组名就arr,这个数组最多可以存储5个数据,并且每一个数据的类型必须是int类型的。
3)几个专业术语
1)元素:数组中的每一个小空间,就叫做数组的元素。
2)下标/索引:为了区分数组中的每一个元素,C系统就为每一个元素编了一个号码,这个号码的下标从0开始,依次递增,这个号码就叫这个元素的下标。
3)长度:数组中元素的个数。
例如:
double arr[4];
代表创建了1个数组.这个数组的名称叫做arr.这个数组最多可以存储4个数据每一个数据的类型必须要是double类型的.
float arr[3];
代表创建了1个数组.这个数组的名称叫做arr.这个数组最多可以存储3个数据每一个数据的类型必须要是float类型的.
char arr[6];
代表创建了1个数组.这个数组的名称叫做arr.这个数组最多可以存储6个数据每一个数据的类型必须要是char类型的.
4、如何往数组中存储数据。
1)数组中存储数据的是数组的元素,而不是整个数组,数组名代表整个数组,所以不能直接为数组赋值
int arr[3]; arr = 10; 这样是不行滴.
从语法上解释:10是int类型的,arr是int数组类型的,类型不同,当然不能赋值了。
2)数组中有多个元素,你必须要确定赋值给哪个元素,可以通过下标来确定。
语法:
数组名[元素下标] = 数据;
arr[1] = 100; 将100赋值给arr数组中下标为1的那个元素.
5、为元素赋值的时候注意两点
1)为元素赋值的时候,赋值的数据的类型要和元素的类型一致,当赋值的数据类型和元素的类型不一致的时候,会做自动类型转换。
2)下标不能越界
当我们去为数组元素赋值的时候,如果下标越界,其实可以赋值,只不过就不是为数组的元素赋值了。
int arr[3]; arr[3] = 1000;
为数组的下标为3的元素赋值,而arr数组没有下标为3的元素。那么这个时候,就找到数组屁股后面的那块空间,而这个空间并不是数组的,有可能这个空间无人使用,也有可能被别的程序使用,也有可能被系统使用,如果这个时候为这个空间赋值,轻则别的程序崩溃,重则系统崩溃。所以我们在使用下标访问数组元素的时候,下标不要越界了。
6、如何取出存储在数组中的数据?
1)如果要取出数组元素中的值,就必须确定到底要取哪1个。
通过下标来确定。
数组名[下标]
int num = arr[1];
就是取出arr数组中元素为1的元素的值,赋值给num变量。
注意:下标不能越界,越界了就是取出别人的值了。
7、遍历数组
将数组中的每一个元素的值打印出来。
for(int i = 0; i < 数组的长度; i++) { arr[i]; 就可以取到数组中的每一个元素的值. }
8、使用数组的几个注意项
1)关于数组的长度
a.在声明数组的时候必须要指定数组的长度,
b.数组的长度可以是常量、变量、表达式、(长度就是表达式的结果)、字符(长度就是字符符ASCII码),
c.数组的长度不能是1个小树,也不能是负数。
d.数组的长度也可以是宏,宏值就必须是1个整数
我们平时写的时候,数组的长度一般都是常量、宏
2)关于数组元素的默认值问题,当我们声明1个数组,没有为数组的元素赋值,那么这个时候数组的元素是有值的,值是1个垃圾值。
3)数组的初始化。
a. int rr[3] = {1,2,3};
b. int len = 3;
int arr = {10,20,30};
在有些编译器编译的时候,无法确定数组的长度,这个时候赋值就有可能越界。所以为了保证一定不会出错,干脆不允许使用变量来表示长度。但是使用宏是可以的。
c. 第三种初始化方式,可以省略数组的长度
int arr[] ={10,20,30,2,12,1,21,2,13,12,3,24,3,543,5,4,65,6,56,4,523,3,2,31,3,13,12,342,4,35,12}; 这个时候,数组的长度就是由大括弧中的数据的个数来决定的. 大括弧中有多少个数据 那么数组的长度就是多少.
d 第四种初始化方式,只为数组前面的元素赋值,
int arr[3] = {10}; 这个时候,数组的第0个元素的值是10 其他的元素的值被自动初始化为0. 所以,如果我们要讲1个数组中的所有的元素初始化为0 就 int arr[4] = {0}; ******
e 第五种初始化方式,指定下标初始化。(不适用)
int arr[3] = {[1] = 10,[2] = 20}; 其他的元素的值就自动的初始化为0.