数组元素是组成数组的基本单元,对数组的访问是通过访问其元素而实现的。数组元素的表示形式为:
数组名[下标]
数组元素也是一种变量,其标识方法为数组名后跟下标,所以也称为下标变量,它与同类型变量的使用方法一样。
例如:
若有定义“int a[10];”,则可以访问数组a的10个元素a[0],a[1],…,a[9],它们与整型变量的使用相同,可以进行输入、输出、赋值等运算。
例如:
a[0]=10;
scanf("%d",&a[1]);
a[2]=a[0]+a[1];
printf("%d\n",a[2]);
需要注意:
(1)数组元素即下标变量,就是一个同类型的变量,与同类型变量的使用方法相同。
(2)下标可以是表达式。下标不同,则下标变量不同。
例如:
for(i=1;i<=10;i++)
printf("%d,",a[i-1]);
这一点非常重要,要好好理解。
(3)下标取值范围:0~(长度-1),且为整数。
(4)对于一维数组来说,它就是一个向量,定义时按顺序分配存储单元。
例如:
int a[5];
内存中分配存储单元的顺序是:a[0],a[1],a[2],a[3],a[4]。
【例5.1】求1~100当中奇数的和。
程序内容如下:
1 #include<stdio.h>
2 int main()
3 {
4 int i,a[51],sum=0;
5 for(i=1;i<=50;i++)
6 a[i]=2*i-1;
7 for(i=1;i<=50;i++)
8 sum=sum+a[i];
9 printf("sum=%d\n",sum);
10 return 0;
11 }
程序结果如图5.1所示:
图5.1 例5.1程序结果图
【例题中关键问题说明】
(1)定义数组a表示这50个奇数,即int a[51],其中a[1]=1,a[2]=3,…,a[50]=99。
(2)程序中数组a的下标取值为0到50,实际上没有用到元素a[0]。(www.xing528.com)
【例5.2】从键盘上输入5个整数,保存在数组中,并输出大于0的数。
程序内容如下:
1 #include<stdio.h>
2 int main()
3 {
4 int i,a[5];
5 printf("Please input data:\n");
6 for(i=0;i<5;i++)
7 scanf("%d",&a[i]);
8 printf("\n");
9 for(i=0;i<5;i++)
10 if(a[i]>0)
11 printf("%4d",a[i]);
12 return 0;
13 }
程序结果如图5.2所示:
图5.2 例5.2程序结果图
【例题中关键问题说明】
(1)用一维数组a[5]来存放从键盘上所获得的5个整数。
(2)数组元素本身可以看作是同一个类型的单个变量,因此对变量可以进行的操作同样也适用于数组元素,也就是说,数组元素可以在任何使用相同类型变量的位置被引用。
(3)引用数组元素时,下标不能越界,否则结果难以预料。
例如:
int a[3];
数组a只有a[0]、a[1]、a[2]这三个元素,a[3]可用但非数组元素。
(4)数组元素也称为下标变量。必须先定义数组,才能使用下标变量。在C语言中只能逐个地使用下标变量,而不能引用整个数组(字符数组除外,参阅5.3节)。
例如:
for(i=0;i<10;i++)
printf("%d",a[i]);
要输出有10个元素的数组可使用循环语句逐个输出下标变量,而不能试图用一个语句输出整个数组,下面的写法是错误的:
printf("%d",a);
(5)数组元素和数组定义在形式上有些相似,但这两者具有完全不同的含义。
首先,数组定义的方括号中给出的是某一维的长度,而数组元素中的下标是该元素在数组中的位置标识。
例如:
“int a[5];”代表该数组由5个元素组成。
“s=a[2];”代表把该数组的第3个元素a[2]的值赋值给变量s。
其次,数组定义时要求有数据类型说明,而数组元素在引用时不需要。
最后,定义数组时,“[]”内只能是常量,使用数组元素时下标可以是常量、变量或表达式。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。