朝花夕拾 · C语言 | 数组篇
一.数组基础1.数组定义数组一般形式类型说明符 数组名 [常量或常量表达式];类型说明符:基本数据类型、构造数据类型(不能是void类型)。说明数组中保存的数据的数据类型。数组名:遵循标识符的命名规则。常量或常量表达式:数组中可以保存的元素的个数。int a[10];sizeof (a); //40字节char str[32]; //32字节float array[5]; //20字节注意1.常量表达式中可以包括常量和符号常量不能包含变量。也就是说C语言不允许对数组的大小作动态定义即数组的大小不依赖于程序运行过程中变量的值。例如下面这样定义数组是不行的int n; scanf(%d,n); //在程序中临时输人数组的大小 int a[n];2.数组访问数组必须先定义然后使用。C语言规定只能逐个引用数组元素而不能一次引用整个数组。下标可以是整型常量或整型表达式。例如:a[0]a[5]a[7]-a[2* 3]注意:定义数组时用到的“数组名[常量表达式]”和引用数组元素时用到的“[下标]”的区别例如:a[0]a[5]a[7]-a[2* 3] int a[10]; //定义数组长度为10 ta[6]; //引用a数组中序号为6的元素。此时6不代表数组长度数组定义时只能用常量但访问时可以使用变量访问应以整型为结果访问)3.数组初始化对数组元素的初始化可以用以下方法实现。(1)在定义数组时对数组元素赋予初值。例如:int a[10]{0,1,2,3,4,5,6,7,8,9};将数组元素的初值依次放在一对花括号内。(2)可以只给一部分元素赋值。例如:int a[10]{0,1,2,3,4};定义a数组有10个元素但花括号内只提供5个初值这表示只给前面5个元素赋初值后5个元素值为0(3)如果想使一个数组中全部元素值为0可以写成:int a[10] {0,0,0,0,0,0,0,0,0,0};或int a[10]{0}; 不能写成int a[10]{0*10};(4)在对全部数组元素赋初值时由于数据的个数已经确定因此可以不指定数组长int a[5]{1,2,3,4,5};可以写成int a[]{1,2,3,4,5};在第二种写法中花括号中有5个数系统就会据此自动定义a数组的长度为5。但若数组长度与提供初值的个数不相同则数组长度不能省略。例如想定义数组长度为10就不能省略数组长度的定义而必须写成:int a[10]{1,2,3,4,5};只初始化前5个元素后5个元素为0。(5数组定义时若int a[]没指定数组大小则需要初始化数组定义若不进行初始化则赋随机值。4.数组存储数组的存储形式单一性:数组中的元素每个元素的数据类型都是一致。有序性:数组中的元素按照a[0]-a[n]的顺序进行存储。连续性:数组在内存中选取连续内存空间存储。数组越界:1.初始化数组时初始化的元素个数超出了数组本身的元素个数。2.访问数组元素时[]中的下标超出了数组元素的访问范围。二.二维数组的定义与引用三.字符数组未完待更......