4.1.1 一维数组的定义
一维数组的形式为:
类型说明符 数组名[常量表达式];
类型说明符表示数组中各元素的类型。数组名的命名规则遵循标识符的命名规则,即由字母、数字、下划线组成,其中数字不能作为开头。常量表达式表示数组的长度,也就是数组中包含的有序数据的个数。例如,int a[5]表示定义了一个整型数组,数组名为a,数组长度为5,也就是数组a中包含5个整型的数组元素。
数组一旦定义,在程序执行过程中,系统会自动为数组分配一个连续的存储空间,这个存储空间可用来存放数组的各个元素,因此方括号里必须是常量、常量表达式、符号常量等,不能是变量。数组的长度或大小不依赖于程序运行过程中变量的值。
例4-1 以下为一维整型数组s的正确说明是________。
(A)int s(10); (B)int i=10,s[i];
(C)int i; (D)#def ine A 10;
scanf("%d",&i); int s[A];
int s[i];
(E)int s[2+5]
分析:(https://www.daowen.com)
对于选项A,不对。定义整型数组s,用“[]”把10括起来才对,不能用“()”。
对于选项B,不对。定义整型数组s,i为变量,虽然为变量i赋值10,可i在程序执行过程中是可变的,因此不能用变量表示数组的长度。
对于选项C,不对。定义整型数组s,i为变量,使用scanf函数为i输入一个整数值,在程序运行过程中i还是可以改变的,因此不能用变量表示数组的长度。
对于选项D,正确。定义整型数组s,用define A 10这样的宏定义将A定义为常数值10,那么在程序运行过程中,A的值就始终保持不变,均为10。因此可以用A来表示数组的长度。
对于选项E,正确。定义整型数组s,数组长度用常量表达式是可以的,表示int s[7]。
下面详细说明怎样来表示数组中的各个元素。
“int s[5];”说明整型数组s有5个元素,分别为s[0],s[1],s[2],s[3],s[4]。数组元素的下标是从0开始的,因此数组元素的下标下限为0,上限为元素的个数减1。
“float a[6],b[10];”说明浮点型数组a有6个元素,分别为a[0],a[1],a[2],a[3],a[4],a[5];浮点型数组b有10个元素,分别为b[0],b[1],b[2],b[3],b[4],b[5],b[6],b[7],b[8],b[9]。
“char c[5];”说明字符型数组c有5个元素,分别为c[0],c[1],c[2],c[3],c[4]。
数组下标为0的元素是数组中的第一个元素,下标为1的元素是数组中的第二个元素,依次类推。