第六章 数组
本章要求
1.一维数组和多维数组的定义,初始化和引用 .
2.字符串与字符数组
引言:
在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组。在C语言中,数组属于构造数据类型。
一. 一维数组的定义
定义: 数组是有序数据(必须是相同的数据类型结构)的集合.
格式: 类型说明符 数组名[常量表达式]
例如: int a[10] ; 表示数组名为a,有10个元素,并且每个元素的类型都是int型的.
float b[10],c[5]; 说明实型数组b有10个元素,实型数组有5个元素;
注意:
1. 数组名的命名规则和标示符的命名规则相同。
2.常量表达式要有方括号括起来,不能用圆括号,int a(10);
这是非法的!
3.常量表达式表示数组元素的个数,即数组长度.并且数组的
第一个元素是从下标0开始的!
4.常量表达式可以是常量也可以是符号常量,不能包含变量。C语言绝对不允许对数组的大小作动态定义;
例如:下面是非法的
int n;
scanf(“%d”,&n);
int a[n];
5.数组的类型实际上就是指数组元素的取值类型,对于同一数组,它所有元素的数据类型都是相同的;
6.数组名不能与其他变量名相同;例如:
main()
{
int a;
float a[10];
………..
} 是非法的!
7.允许在同一个类型说明中,说明多个数组和多个变量;
例如: int a,b,c,d[10],e[5];
二. 一维数组元素的初始化
有下列方法初始化:
1)在定义数组时,对数组元素赋初值;
例如: int a[10]={0,1,2,3,4,5,6,7,8,9};
上面的语句等价于
a[0]=0,a[1]=1,
2)可以只给一部分元素赋初值,例如:
int a[10]={0,1,2,3,4};
表示只给数组的前5个元素赋初值,后5 个元素的值,系统自动默认为0
3)在对全部数组元素赋初值时,可以不指定数组长度;例如:
int a[5]={0,1,2,3,4};
可以改写为: int a[]={0,1,2,3,4};
但是,int a[10] ={0,1,2,3,4};
不能改写为: int a[]={0,1,2,3,4};
三. 一维数组的引用
数组必须先定义,后使用!
C语言规定: 只能逐个引用数组元素,而不能一次引用整个数组!
数组的引用形式为: 数组名[下标] 其中,下标可以是整型常量也可以是整型表达式.
例如: a[0]=a[5]+a[7]+a[2*3]
四. 一维数组的程序举例
1.读10个数存入数组中,输出数组中的所有数据.
main()
{
int i,a[10];
for(i=0;i<=9;i++)
a[i]=i; /*顺序给数组元素赋初*/
for(i=0;i<=9;i++)
printf(“%d”,a[i]); /*顺序输出数组元素*/
}
2.读10个整数存入数组中,输出平均值.
#include <stdio.h>
#define size 10
main()
{
int x[size],i;
float s=0,ave;
for(i=0;i<size;i++)
scanf(“%d”,&x[i]);
字符串比较函数实现for(i=0;i<size;i++)
s+=x[i];
ave=s/size;
printf(“%d\n”,ave);
}
五. 二维数组的定义
定义格式:
类型说明符 数组名[常量表达式1][常量表达式2]
其中表达式1表示第一维下标的长度;
表达式2表示第二维下标的长度;
例如: int a[2][3];
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论