第六章:数组02
让编程改变世界
Change the world by program
一维数组元素的引用
[codesyntax lang="c"]#include <stdio.h> void main() { int i,a[10]; for(i=0;i<=9;i++) { a[i]=i; } for(i=9;i>=0;i--) { printf("%d ",a[i]); } }[/codesyntax]
一维数组的初始化
小秘密:给数组赋值的方法除了用赋值语句对数组元素逐个赋值外, 还可采用初始化赋值和动态赋值的方法。 数组初始化赋值是指在数组定义时给数组元素赋予初值。数组初始化是在编译阶段进行的。这样将减少运行间, 提高效率。 !!注意:之前用赋值语句或输入语句也可给数组素指定初值, 是在运行时完成。初始化赋值的一般形式为:
类型说明符 数组名[常量表达式] = {值, 值, ……值};
实现方法有如下几种:
1) 在定义数组时对数组元素赋以初值。 例如: int a[10]= {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; 将数组元素的初值依次放在一对花括弧内。 经过上面的定义和初始化之后, a[0]=0, a[1]=1, a[2]=2, a[3]=3, a[4]=4, a[5]=5, a[6]=6, a[7]=7, a[8]=8, a[9]=9。 2) 可以只给一部分元素赋值。 例如: int a[10]= {0, 1, 2, 3, 4}; 定义a数组有10个元素, 但花括弧内只提供5个初值, 这表示只给前面5个元素赋初值, 后5个元素值为0。不信的话可以调试一下!!尽信书则不如无书!! 3) 如果想使一个数组中全部元素值为0 可以写成int a[10]={0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
或int a[10]={0};
4) 在对全部数组元素赋初值时, 由于数据的个数已经确定, 因此可以不指定数组长度。 例如: int a[5]= {1, 2, 3, 4, 5}; 也可以写成:int a[ ]= {1, 2, 3, 4, 5}; 在第二种写法中, 花括弧中有5个数, 系统就会据此自动定义a数组的长度为5。但若数组长度与提供初值的个数不相同, 则数组长度不能省略。 例如, 想定义数组长度为10, 就不能省略数组长度的定义, 而必须写成int a[10]={1, 2, 3, 4, 5}; 只初始化前5个元素, 后5个元素为0。数组初始化与未初始化比较
[codesyntax lang="c"]#include <stdio.h> void main() { int i, a[5] = {3, 4, 5}, b[5]; printf(“ n array a is: ”); for(i=0; i<5; i++) printf(“%6d”, a[i]); printf(“ n array b is: ”); for(i=0; i<5; i++) printf(“%6d”, b[i]); }[/codesyntax]
动态赋值的方法 :
[codesyntax lang="c"]#include <stdio.h> void main() { int i, max, a[10]; printf("input 10 numbers:n"); for(i=0; i<10; i++) scanf("%d",&a[i]); //这里是因为篇幅限制不得已。 max = a[0]; for(i=1; i<10; i++) if(a[i]>max) max=a[i]; //有条件的话还是加回括号给它哦~ printf("maxmum=%dn",max); }[/codesyntax] [buy] 获得所有教学视频、课件、源代码等资源打包 [/buy] [Downlink href='http://kuai.xunlei.com/d/LBWXBPYOERBD']视频下载[/Downlink]