目录
数组是相同数据类型变量的有序集合
—数组作为整体需要一个合法的命名(数组名)
—数组中的变量没有独立命名,只有在数组中的编号
—数组中的变量数量是固定不变的(数组大小固定)
语法:tpye Name [ size ]
示例:
- int arr1[10]; //定义名为 arr1 的数组
- //数组中一共有 10 个元素
- //每个元素的类型为 int
-
- double farr[5]; //定义名为 farr 的数组
- //数组中一共有 5 个元素
- //每个元素的类型为double
a.通过数组名 [下标] 的方式来访问元素
b.数组是一个有序的集合,每个元素有固定的下标
c.数组元素下标固定从0开始(可以使用变量作为下标)
示例:
- int arr1[3];
-
- arr1[-1] = 0; //ERROR
-
- arr1[0] = 1;
- arr1[1] = 2;
- arr1[2] = 3;
-
- arr1[3] = 4; //ERROR
-
-
注意事项:
1.只有整型数才能作为数组的下标访问元素
2.下标越界是一种非常严重的编辑错误(工业级BUG来源)
3.下标越界带来的后果可能不会立即体现
—语法:type Name [N] = { V0, V1, ... , Vn-1};
—意义:将数组中的元素分别初始化为 V0, V1, ... , Vn-1
- int main ()
- {
- int arr[5] = {2,4,5,5,6};
- int i = 0;
- for (i = 0 ;i<5 ;i++)
- {
- printf("arr[%d] = %d \n", i, arr[i]);
- }
- return 0;
- }
数组初始化技巧
(1)自动确认数组大小
type Name [] = {V0, V1, ... , Vn-1};
(2)将部分数组元素初始化为0
/* s < N ,未指定初始值的元素默认为0*/
type Name [N] = {V0, V1, ... , Vs};
(3)将全部元素初始化为0
type Name [N] = {0};
数组在计算机底层是一片连续的内存,用于储存数组元素
—数组的大小字节数可以用sizeof()获取(单位为字节)
计算数组大小
type Name [] = {V0, V1, ... , Vn-1}; // 一共n个元素
sizeof(Name)/ sizeof( Name[0] ); // 计算结果为n
注意:
1.数字名只能作左值使用(可以看作常量)
2.只能使用整型常量对数组大小进行定义
3.只能使用整型值对下标访问数组元素
- int size; //初始值多少?
- int arr[size]; //数组大小多少?
- int a[5] = {0};
- arr[1.5] = 1; //第1.5个变量是哪个
- arr = a; //常量不能作左值