C语言程序设计基?讲座之数组
2004-9-30 作者: 出处:唯C世界
数组在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来 U庑┌葱蚺帕械耐嗍菰氐募铣莆?T贑语言中, 数组属于构造数据类型 R桓鍪榭梢苑纸馕喔鍪樵兀庑┦樵乜梢允腔臼堇嘈突蚴枪乖炖嘈?R虼税词樵氐睦嘈筒煌橛挚煞治凳?⒆址?⒅刚胧?⒔峁故榈雀髦掷啾??br>
本章介绍数值数组和字符数组,其余的在以后各章陆续介绍 J槔嘈退得?在C语言中使用数组必须先进行类型说明 ?数组说明的一般形式为:
类型说明符 数组名 [常量表达式], ??
其中,类型说明符是任一种基本数据类型或构造数据类型 ?数组名是用户定义的数组标识符 ?方括号中的常量表达式表示数据元素的个数,也称为数组的长度 ?br>
例如:
int a[10]; 说明整型数组a,有10个元素 ?br> float b[10],c[20]; 说明实型数组b,有10个元素,实型数组c,有20个元素 ?br> char ch[20]; 说明字符数组ch,有20个元素 ?br>
对于数组类型说明应注意以下几点:
1.数组的类型实际上是指数组元素的?值类型 6杂谕桓鍪椋渌性氐氖堇嘈投际窍嗤??br>
2.数组名的书写规则应符合标识符的书写规定 ?
3.数组名不能与其它变量名相同,例如:
void main()
{
int a;
float a[10];
??br> }
是错误的 ?br>
4.方括号中常量表达式表示数组元素的个数,如a[5]表示数组a有5个元素 5瞧湎卤甏?开始计算 R虼?个元素分别为a[0],a[1],a[2],a[3],a[4] ?br>
5.不能在方括号中用变量来表示元素的个数, 但是可以是符号常数或常量表达式 @纾?br>
#define FD 5
void main()
男人四十一枝花 mp3手机娱乐频道幽默短信集锦手机宝典{
int a[3+2],b[7+FD];
??br> }
是合法的 5窍率鏊得鞣绞绞谴砦蟮??
void main()
{
int n=5;
int a[n];
??br> }
6.允许在同一个类型说明中,说明多个数组和多个变量 ?br>
例如: int a,b,c,d,k1[10],k2[20];
手机娱乐频道幽默短信集锦手机宝典
数组元素的表示方法
数组元素是组成数组的基本单元 J樵匾彩且恢直淞浚?其标识方法为数组名后跟一个下标 ?下标表示了元素在数组中的顺序号 J樵氐囊话阈问轿?数组名[下标] 其中的下标只能为整型常量或整型表达式 H缥 数时,C编译将自动?整 @纾琣[5],a[i+j],a[i++]都是合法的数组元素 ?数组元素通常也称为下标变量 1匦胂榷ㄒ迨椋?才能使用下标变量 T贑语言中只能逐个地使用下标变量, 而不能一次引用整个数组 ?例如,输出有10 个元素的数组必须使用循环语句逐个输出各下标变量:
for(i=0; i<10; i++) printf("%d",a[i]);
而不能用一个语句输出整个数组,下面的写法是错误的:
printf("%d",a);
void main()
{
int i,a[10];
for(i=0;i<10;)
a[i++]=2*i+1;
for(i=9;i>=0;i--)
printf("%d",a[i]);
printf("\n%d %d\n",a[5.2],a[5.8]);
}
for(i=0;i<10;)
a[i++]=2*i+1;
for(i=9;i>=0;i--)
printf("%d",a[i]);
printf("\n%d %d\n",a[5.2],a[5.8]);
本例中用一个循环语句给a数组各元素送入奇数值,然后用第二个循环语句从大到?输出各个奇数 T诘谝桓?for语句中,表达式3?略了 T谙卤瓯淞恐惺褂昧吮泶锸絠++,用以修改循环变量 5比坏诙鰂or语句也可以这样作, C语言允许用表达式表示下标 ?程序中最后一个printf语句输出了两次a[5]的值, 可以看出当下标不为整数时将自动?整 J榈母持蹈楦持档姆椒ǔ擞酶持涤锞涠允樵刂鸶龈持低猓?还可采用初始化赋值和动态赋值的方法 J槌跏蓟持凳槌跏蓟持凳侵冈谑樗得魇备樵馗秤璩踔??数组初始化是在编译阶段进行的 U庋跎僭诵惺奔洌岣咝??br>
初始化赋值的一般形式为: static 类型说明符 数组名[常量表达式]={值,值 ?祡; 其中static表示是静态存储类型, C语言规定只有静态存储数组和外部存储数组才可作初始化赋值(有关静态存储,外部存储的概念在第五章中介绍) T趝 }中的各数据值即为各元素的初值, 各值之间用逗号间隔 @纾?static int a[10]={ 0,1,2,3,4,5,6,7,8,9 }; 相当于a[0]=0;a[1]=1...a[9]=9;
C语言对数组的初始赋值还有以下几点规定:
1.可以只给部分元素赋初值 5眥 }中值的个数少于元素个数时,只给前面部分元素赋值 @纾?static int a[10]={0,1,2,3,4};表示只给a[0] 玜[4]5个元素赋值,而后5个元素自动赋0值 ?br>
2.只能给元素逐个赋值,不能给数组整体赋值 ?例如给十个元素全部赋1值,只能写为:
static int a[10]={1,1,1,1,1,1,1,1,1,1};
而不能写为:
static int a[10]=1;
3.如不给可初始化的数组赋初值,则全部元素均为0值 ?br>
4.如给全部元素赋值,则在数组说明中, 可以不给出数组元素的个数 @纾?br>
static int a[5]={1,2,3,4,5};
可写为:
static int a[]={1,2,3,4,5};
|