清华大学出版社 TSINGHUA UNIVERSITY PRESS §7.1.1一维数组的定义 1、一维数组的定义格式为: 类型说明符数组名[常量表达式]; 例如:inta[10] 它表示定义了一个整形数组,数组名为a,此数组 有10个元素。 2、说明: (1)数组名定名规则和变量名相同,遵循标识符定 名规则
1、一维数组的定义格式为: 类型说明符 数组名[常量表达式]; 例如: int a[10]; 它表示定义了一个整形数组,数组名为a,此数组 有10个元素。 § 7.1.1一维数组的定义 2、说明: (1)数组名定名规则和变量名相同,遵循标识符定 名规则
(2)在定义数组时,需要指定数组中元素的个数, 方括弧中的常量表达式用来表示元素的个数,即数组 长度。例如,指定a[10],表示a数组有10个元素, 注意下标是从0开始的,这10个元素是,a[0],a[ ],a[2],a[3],a[4],a[5],a[6] [7],a[8],a[9]。请持别注意,按上面的定 义,不存在数组元素a[10] (3)常量表达式中可以包括常量和符号常量,但不 能包含变量。也就是说,C语言不允许对数组的大小 作动态定义,即数组的大小不依赖于程序运行过程中 变量的值。例如,下面这样定义数组是不行的:
(2)在定义数组时,需要指定数组中元素的个数, 方括弧中的常量表达式用来表示元素的个数,即数组 长度。例如,指定a[10],表示a数组有10个元素, 注意下标是从0开始的,这10个元素是,a[0],a[ 1],a[2],a[3],a[4],a[5],a[6],a [7],a[8],a[9]。请持别注意,按上面的定 义,不存在数组元素a[10]。 (3)常量表达式中可以包括常量和符号常量,但不 能包含变量。也就是说,C语言不允许对数组的大小 作动态定义,即数组的大小不依赖于程序运行过程中 变量的值。例如,下面这样定义数组是不行的:
清华大学出版社 TSINGHUA UNIVERSITY PRESS 举例:intn; scanf(w%d″,&n);/*在程序中临时输入数 组的大小米/ int a ln] 数组说明中其他常见的错误 ① float a[0];/*数组大小为0没有意义*/ ②intb(2)(3);/*不能使用圆括号*/ ③intk,a[k];/*不能用变量说明数组大小*
举例: int n; scanf(“%d″,&n); /*在程序中临时输入数 组的大小 */ int a[n]; ① float a[0]; /* 数组大小为0没有意义 */ ② int b(2)(3); /* 不能使用圆括号 */ ③ int k, a[k]; /* 不能用变量说明数组大小*/ 数组说明中其他常见的错误
清华大学出版社 ISINGHUA UNIVERSITY PRESS 3、一维数组在内存中的存放 一维数组: float mark[100] 低地址 86.5 markO 90 mark1 每个数据元素占用 77.5 mark2 的字节数,就是基 52.0 mark(31 类型的字节数 个元素占4个字节 高地址 94.0 mark99
3、一维数组在内存中的存放 每个数据元素占用 的字节数,就是基 类型的字节数 一个元素占4个字节 一维数组: float mark[100]; mark[0] mark[1] mark[2] mark[3] . . . mark[99] 86.5 92.0 77.5 52.0 . . . 94.0 低地址 高地址
华大学出版社 §7.1.2一维数组元素的引用 1、数组元素的引用方式: 数组名[下标] 下标可以是整型常量或整型表达式。例如 a[0]=a[5]+a[7]-a[2*3] 注意 定义数组时用到的“数组名[常量表达式]”和引用 数组元素时用到的“数组名[下标]”是有区别的 例如:inta[10];/*定义数组长度为10* t=a[6] /*引用a数组中序号为6的元 素。此时6不代表数组长度米
数组名[下标] 下标可以是整型常量或整型表达式。例如: a[0]=a[5]+a[7]-a[2*3] 定义数组时用到的“数组名[常量表达式]” 和引用 数组元素时用到的“数组名[下标]” 是有区别的。 例如∶ int a[10]; /* 定义数组长度为10 */ t=a[6]; /* 引用a数组中序号为6的元 素。此时6不代表数组长度 */ 注意 § 7.1.2一维数组元素的引用 1、数组元素的引用方式: