1)对全部数组元素赋初值。例如: static int a[6]={1,2,3,4,5,6}; 其中,数组元素的个数和花括号中初值的个数是相同的,并 且花括号中的初值从左到右依次赋给每个数组元素,即 a[0]=1,a[1]=2,a[2]=3,a[3]=4,a4]=5,a[5]=6。用 初始化的方法可以提高赋值效率,而且这是在程序编译时 进行的,不占用系统的运行时间。 2)只给部分数组元素赋初值。这又可分为两种情况: ①如果只给数组的前半部分元素赋初值,可连续写出初值
1)对全部数组元素赋初值。例如: static int a[6]={1,2,3,4,5,6}; 其中,数组元素的个数和花括号中初值的个数是相同的,并 且花括号中的初值从左到右依次赋给每个数组元素,即 a[0]=1,a[1]=2,a[2]=3,a[3]=4,a[4]=5,a[5]=6。用 初始化的方法可以提高赋值效率,而且这是在程序编译时 进行的,不占用系统的运行时间。 2)只给部分数组元素赋初值。这又可分为两种情况: ①如果只给数组的前半部分元素赋初值,可连续写出初值
例如: inta[5]={1,2: 其作用是把1赋给a[0],把2赋给a[1],而对后面的元素全部 自动赋以初值0,即a[2]=a[3]=a[4=0; ②如果只给数组的后半部分元素或某些不连续的元素赋初值, 则花括号中分隔数值的逗号不能缺少,把要赋的值写入适 当的地方,而不予赋值的地方应写0(对数值型数组)。 例如:inta[5]={0,3,0,7,9;则对数组元素a[1]、a[3]、a[4] 赋了初值3,7,9,而a[0]、a[2]元素值均为0
例如: int a[5]={1,2}; 其作用是把1赋给a[0],把2赋给a[1],而对后面的元素全部 自动赋以初值0,即a[2]= a[3] = a[4]=0; ②如果只给数组的后半部分元素或某些不连续的元素赋初值, 则花括号中分隔数值的逗号不能缺少,把要赋的值写入适 当的地方,而不予赋值的地方应写0(对数值型数组)。 例如:int a[5]={0,3,0,7,9};则对数组元素a[1]、a[3]、a[4] 赋了初值3,7,9,而a[0]、a[2]元素值均为0
又例如:static int a[10]={0,1,2,3,4}; 此语句定义a数组有10个元素,但花括号中只提供了5个初值, 表示只给前5个数组元素a[0]~a[4]赋初值,后面5个元素 a[]~a[9]系统自动赋0。 3)给数组全部元素赋初值时,可以省略数组长度。例如: inta1={10,20,30,40,50}; 省略数组长度时,系统将根据赋初值的个数确定数组长度。 上述大括号内共有5个初值,说明数组a的元素个数为5, 即数组长度为5
又例如:static int a[10]={0,1,2,3,4}; 此语句定义a数组有10个元素,但花括号中只提供了5个初值, 表示只给前5个数组元素a[0]~a[4]赋初值,后面5个元素 a[5]~a[9] 系统自动赋0。 3)给数组全部元素赋初值时,可以省略数组长度。例如: int a[]={10,20,30,40,50}; 省略数组长度时,系统将根据赋初值的个数确定数组长度。 上述大括号内共有5个初值,说明数组a的元素个数为5, 即数组长度为5
(2)在运行阶段赋初值。 举例如下: int a[10]; int i; for(i=0;i<10;i++) scanf("%d",&ali]); 上面程序段中对数组元素的赋值是通过循环语句实现的,这 要占用运行时间。 数组初始化时的常见错误有以下两种: 1)在实际数值之间留有空位,例如:
(2)在运行阶段赋初值。 举例如下: int a[10]; int i; for(i=0;i<10;i++) scanf("%d", &a[i]); 上面程序段中对数组元素的赋值是通过循环语句实现的,这 要占用运行时间。 数组初始化时的常见错误有以下两种: 1)在实际数值之间留有空位,例如:
inta[5]={1,3,5}; 是错误的,即在1和3之间、3和5之间必须有具体数值,即使 是0也必须写上。 2)初始值的个数大于元素的个数,例如: inta[5]={1,2,3,4,5,6}; 也是错误的,因为数组只有5个元素,而提供了6个初值,这 会造成编译错误。 6.1.4实例验证
int a[5]={1,3,5}; 是错误的,即在1和3之间、3和5之间必须有具体数值,即使 是0也必须写上。 2)初始值的个数大于元素的个数,例如: int a[5]={1,2,3,4,5,6}; 也是错误的,因为数组只有5个元素,而提供了6个初值,这 会造成编译错误。 6.1.4 实例验证