数组在内存的存放 ●数幻下标从0开蛤。 score数组 一维数组的激组元豪低地址 score[0J 在內存里按顺序存放。 91.5 数组名代表数组的 34.5 score[ 1I 地址,即 scorel的值 67.5 score 与 scorer的地址 72.0 score 值相同。 高地址84.0 scorel4 2021/2/21
2021/2/21 6 数组在内存的存放 ⚫ 数组下标从0开始。 ⚫ 一维数组的数组元素 在内存里按顺序存放。 ⚫ 数组名代表数组的首 地址,即score的值 与score[0] 的地址 值相同。 score[0] score[1] score[2] score[3] score[4] 91.5 34.5 67.5 72.0 84.0 低地址 高地址 score数组
612数组元素的引用 格式: 数组名下标表达式 例如:输入学生成绩 for(i=0;i<5;H++) scanf(%f, &scoreiD) 例如:fbm=fbn-1H+fib|n-2 下标表达式的值必须是整型表达式。 2021/2/21
2021/2/21 7 6.1.2 数组元素的引用 格式: 例如:输入学生成绩 for(i=0;i<5;i++) scanf("%f" ,&score[i]); 例如:fib[n]=fib[n-1]+fib[n-2]; 下标表达式的值必须是整型表达式。 数组名[下标表达式]
612数组元素的引用(续) 8 说明: ①下标从0开始(下界为0),数组的最大下标 (上界)是数组长度减1。 例如: int a[10; scanf("d"&a0×/下标越界*/ C编译系统不做越界检查,如果引用的数组元素 超出数组范围会破坏其他变量的值。 2021/2/21
2021/2/21 8 6.1.2 数组元素的引用(续) 说明: ① 下标从0开始(下界为0),数组的最大下标 (上界)是数组长度减1。 例如: int a[10]; scanf ("%d",&a[10]); /* 下标越界 */ C编译系统不做越界检查,如果引用的数组元素 超出数组范围会破坏其他变量的值
612数组元素的引用(续) 如引用 score|2|: ②是下标运算符,(1)计算2000+2*4=2008 引用数组元素时, (2)取出2008的内容 根据数组的首地址 score 和下标数,计算出 2000 H 915 该元素的实际地址, 2004L345 score 2008H67.5 score[2 1取出该地址的内容200|72.0sr3l 进行操作。 218c H 84.0 score 2021/2/21
2021/2/21 9 6.1.2 数组元素的引用(续) ② [ ]是下标运算符, 引用数组元素时, 根据数组的首地址 和下标数,计算出 该元素的实际地址, 取出该地址的内容 进行操作。 如引用 score[2]: (1)计算 2000+2*4=2008 (2)取出2008的内容 2000H 2004H 2008H 200CH 218CH score[0] score[1] score[2] score[3] score[4] 91.5 34.5 67.5 72.0 84.0
613—维数组的初始化 10 初始化:在定义数组时给数组元素赋初值。 1.在定义数组时,对全部数组元素赋初值 例如:inta5}={0.,1,2,3,4}; 此时可以省略数组长度,例如:inta|={0,1,2,3,4}; 2.在定义数组时,对部分数组元素赋初值 例如:inta5]}={1,2,3};系统为其余元素赋0。 3.当初值的个数多于数组元素的个数时,编译出错 例如:inta5=0,2,3,4,5}; 2021/2/21
2021/2/21 10 6.1.3 一维数组的初始化 初始化:在定义数组时给数组元素赋初值。 1.在定义数组时,对全部数组元素赋初值 例如:int a[5]={0,1,2,3,4}; 此时可以省略数组长度,例如:int a[ ]={0,1,2,3,4}; 2.在定义数组时,对部分数组元素赋初值 例如:int a[5]={1,2,3};系统为其余元素赋 0 。 3.当初值的个数多于数组元素的个数时,编译出错 例如: int a[5]={0,1,2,3,4,5};