一维数组的引用规律对于同一个数组的各个元素,数组名是一样的。数组名表示该数组所占用的连续存储空间的起始地址(首地址)--也是数组首元素的地址各个数组元素由下标区分,通过下标能访问不同的数组元素变换下标。借助循环和数组下标能访问数组元素:在循环过程中,找到数组的所有元素。操作全部元素:对每一个数组元素都进行操作。操作部分数组元素:对下标满足条件的数组元素进行操作
一维数组的引用规律 ➢ 对于同一个数组的各个元素,数组名是一样的。 ➢ 数组名表示该数组所占用的连续存储空间的起始地址(首地址)-也是 数组首元素的地址。 ➢ 各个数组元素由下标区分,通过下标能访问不同的数组元素-变换下标。 ➢ 借助循环和数组下标能访问数组元素: ① 在循环过程中,找到数组的所有元素。 ② 操作全部元素:对每一个数组元素都进行操作。 ③ 操作部分数组元素:对下标满足条件的数组元素进行操作
【例】找出数组元素中的最大值和它的下标1#include<stdio.h>算法:打播台2#defineN10max的初值为a[0],na=0。1max与数组中的元素逐个比较:3int main()当前元如果当前元素大于max,4(int a[N],i,max,nd;素为最大值。?for (i=0;i<N;i++)?scanf("%d",&a[i])?max=a[0]nd=0;1/擂主的初值8for(i=1;i<N;i++)?(10if (a[]>max)11Ⅱ新播主当前最大元素值(max=a[i];12nd=i;Ⅱ新播主对应的下表当前最大元素值的下标?145printf("max=%d nd=%din",max,nd);16return O;1712/24
【例】找出数组元素中的最大值和它的下标 ① #include <stdio.h> ② #define N 10 ③ int main() ④ { int a[N],i,max,nd; ⑤ for (i=0;i<N;i++) ⑥ scanf("%d",&a[i]); ⑦ max=a[0]; nd=0; //擂主的初值 ⑧ for (i=1;i<N;i++) ⑨ { ⑩ if (a[i]>max) ⑪ { max=a[i]; // 新擂主-当前最大元素值 ⑫ nd=i; // 新擂主对应的下表-当前最大元素值的下标 ⑬ } ⑭ } ⑮ printf("max=%d nd=%d\n",max,nd); ⑯ return 0; ⑰ } 算法:打擂台 ① max的初值为a[0] , na=0。 ② max与数组中的元素逐个比较: 如果当前元素大于max,当前元 素为最大值。 12/24
8.1.3一维数组的初始化一P146定义数组时不做初始化,则数组元素的值是随机的例1:int a[5] ;//a[0]—a[4]的值是随机的在定义数组时分别对所有数组元素赋予初值2例3-1:inta[100]=(0];例2 : int a[5]={1,2,3,4,5];1/所有100个元素都赋初值0可以只给一部分元素赋值。3.例3:inta[5]={1,3,5];//前3个元素赋初值,其余元素为0初值个数不能超过数组大小。4.例4:inta[5]={1,2,3,45,6,7;//编译错误(超出数组大小)在对全部数组元素赋初值时,可以不指定数组长度,C自动按初值个5数定义数组长度。例5:inta[]=(1,2,3,4,5);//数组长度为56、用static定义的全局数组或局部数组不赋初值--系统默认其为0。例6:staticinta[5];//数组元素值均为013/24
1、定义数组时不做初始化,则数组元素的值是随机的。 例1:int a[5];//a[0]—a[4]的值是随机的 2、 在定义数组时分别对所有数组元素赋予初值。 例2:int a[5]={1,2,3,4,5}; 3、可以只给一部分元素赋值。 例3:int a[5]={1,3,5}; //前3个元素赋初值,其余元素为0 4、初值个数不能超过数组大小。 例4:int a[5]={1,2,3,4,5,6,7}; //编译错误(超出数组大小) 5、 在对全部数组元素赋初值时,可以不指定数组长度,C自动按初值个 数定义数组长度。 例5:int a[ ] = {1,2,3,4,5}; //数组长度为5 6、用static 定义的全局数组或局部数组不赋初值-系统默认其为0。 例6:static int a[5]; //数组元素值均为0 13/24 8.1.3一维数组的初始化—P146 例3-1:int a[100]={0}; //所有 100个元素都赋初值0