数组就是一组有序、同类型且咋子内存中连续存储的数据的集合。
一维数组
定义数组的一般形式为
类型符号 数组名[常量表达式】
在主函数中定义数组的时候,数组的长度必须是个常量或符号变量。
**如果在被调用的函数中定义数组,其长度可以是变量或非常量表达式(在C11标准里可行,在C99标准不可行)。
例如:定义一个长度为5的数组,5个元素依次是a[0],a[1],a[2],a[3],a[4],特别注意不存在数组元素a[5]。
int a[5] = {1,2,3,4,5};
它表示定义了一个整型数组,数组名为 a,定义的数组称为数组 a。数组名 a 除了表示该数组之外,还表示该数组的首地址(关于首地址随后的指针章节进行讲解)。
此时数组 a 中有 5 个元素,每个元素都是 int 型变量,int 型变量占 4 字节的内存空间,那么 5 个int型变量就占 20 字节的内存空间,而且它们的地址是连续分配的。
数组引用的形式为:
数组名 [下标]
注意:在定义数组时用到的“数组名[常量表达式]“和引用数组元素时用的”数组名[下标]“形式相同,但是含义不同。
int a[10]; //这里的a[10]表示的是定义数组时指定数组包含10个元素
t = a[6]; //这里的a[6]表示引用a数组中序号为6的元素
以下代码均可以调用(在指针部分进行讲解)
int main()
{
int br[10];
int a = br[6];
int b = *(br + 6);
int c = 6[br];
return 0;
}
一维数组的初始化
1、在定义数组时对全部数组元素赋予初值
int a[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
2、可以只给数组中一部分元素赋值。其余元素系统自动赋值为0
int a[10] = { 0, 1, 2, 3, 4 };
3、可以直接给元素赋值,不指定数组长度
int a[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
对于数组只对一维数组的基本内容进行讲解,在指针部分会对数组进行深入的讲解