课堂练习:(1) int a[10];(2) double f[20];(3) char s1[5], s2[10];问题:定义了多少个元素?数组的数据类型?最后一个元素下标是多少?(1)定义了有10个元素的int型数组a,9(2)定义了有20个元素的double型数组f,19(3)定义了有10个和20个元素的char型数组s1和s2,496/115
课 堂 练 习 : (1) int a[10]; (2) double f[20]; (3) char s1[5], s2[10]; 问题:定义了多少个元素?数组的数据类型? 最后一个元素下标是多少? (1)定义了有10个元素的int型数组a,9 (2)定义了有20个元素的double型数组f,19 (3)定义了有10个和20个元素的char型数组 s1和s2,4 9 6/115
>数组定义说明:(4)数组元素存储空间的分配:数组定义后,每个数组元素的类型均相同一每个元素是一个变量,系统将给其分配一定大小的内存单元,所有数组元素占用内存中一段连续的存储单元。其所占内存单元的大小与数组元素的类型和数组的长度有关。数组所占内存单元的字节数三数组大小×sizeof(数组元素类型例如:inta[10l;/则数组a所占内存单元的大小为:10*sizeof(int)=10*4=40(字节)(5)第一个数组元素的地址是整个数组所占内存块的低地址,也是数组所占内存块的首地址,最后一个数组元素的地址是整个数组所占内存块的高地址(末地址)。例如,下面对数组的定义:末地址inta[10];//a包含10个元素:a[0],a|1],a[2]....,a[9]首地址a[0]a[1]a[2]a[3]a[8]a[7]a[9]
➢ 数组定义说明: (4)数组元素存储空间的分配:数组定义后,每个数组元素的类型均相 同—每个元素是一个变量,系统将给其分配一定大小的内存单元,所有数 组元素占用内存中一段连续的存储单元。其所占内存单元的大小与数组元 素的类型和数组的长度有关。 数组所占内存单元的字节数= 数组大小× sizeof(数组元素类型) 例如:int a[10]; //则数组a所占内存单元的大小为: 10 * sizeof(int) = 10 * 4 = 40(字节) (5)第一个数组元素的地址是整个数组所占内存块的低地址,也是数组所占内存 块的首地址,最后一个数组元素的地址是整个数组所占内存块的高地址(末地址)。 例如,下面对数组的定义: int a[10]; // a包含10个元素:a[0],a[1],a[2],.,a[9] a[0] a[1] a[2] a[3] . a[7] a[8] a[9] 末地址 首地址
8.1.2、一维数组元素的引用一P144引用格式:数组名[下标]引用说明:整型变量或整型表达式一-整型值(1)下标可以是整型常量例1:@ int i=3 , a[10]? a[i]= a[7]+ a[i*2];例2:int a[10];a第1个元素a[0]2000第2个元素a[1]2004占用的字节数为:第3个元素内存a[2]200810 *sizeof(int)地址...........=10*4=40第10个元素2036a[9]
8.1.2、一维数组元素的引用—P144 ➢ 引用格式: 数组名[下标] ➢ 引用说明: (1)下标可以是整型常量、整型变量或整型表达式—-整型值 例1: ① int i=3,a[10]; . ② a[i]= a[7]+ a[i*2]; 占用的字节数为: 10 * sizeof(int) = 10 * 4 = 40 a[0] a[1] a[2] a[9] . 内存 地址 2000 2004 2008 2036 a. 第1个元素 . 第2个元素 第3个元素 第10个元素 例2: int a[10];
引用说明:(2)数组元素的下标值只能是整数。(3)数组元素的下标值与数组定义时的长度(大小)是不同的概念:例1:inta[10f;10是数组长度例2:2a[3]=20;3是数组元素下标(4)只能逐个引用数组元素,不能一次引用整个数组。例3: int a[10];printf ("%d",a);(×)例4: for (i = 0; i < 10;i++)printf ("%d ",a[i]);( )9/115
9/115 引用说明: (2)数组元素的下标值只能是整数。 (3)数组元素的下标值与数组定义时的长度(大小)是不同的概念; 例1:int a[10]; 例2:a[3]=20; 10 是 数组长度 3是数组元素下标 (4)只能逐个引用数组元素,不能一次引用整个数组。 例3:int a[10]; printf ("%d", a); ( ) 例4:for (i = 0; i < 10; i++) printf ("%d ", a[i]); (√ )
>引用说明:(5)数组的每个元素相当于一个变量,有时也把数组元素称为下标变量,对普通变量的一切操作同样也适合于数组元素,例1:inta[10];a[1]=2;a[3]=4;//给数组元素a[1]a|3]赋值D②a[2]=a[1]+a[3];// 将a[1]+a[3]的值赋给a[2](6)数组引用注意:下标不能越界。例2:intx,a[5]:/ /a数组元素的下标是0—4x =a[5];/ /错:引用越界,只能引用a[o]~a[4](7)数组必须先定义,后使用。例3:intx=a[1];/ /错误,应先定义数组a,再引用a的元素int al10l;
➢ 引用说明: (5)数组的每个元素相当于一个变量,有时也把数组元素称为 下标变量,对普通变量的一切操作同样也适合于数组元素。 (6)数组引用注意:下标不能越界。 (7)数组必须先定义,后使用。 例1:int a[10]; ① a[1] = 2; a[3] = 4; // 给数组元素a[1]、a[3]赋值 ② a[2] = a[1] + a[3]; // 将a[1]+a[3]的值赋给a[2] 例2:int x,a[5]; //a数组元素的下标是 0—4 . x = a[5]; //错:引用越界,只能引用a[0]~a[4] 例3: int x = a[1];//错误,应先定义数组a,再引用a的元素 int a[10];