第4章数组和字符串
C 语言程序设计
1
本章内容
为了解决比较复杂的问题,本章介绍C语言提供的一种最简单的构造类型──数组。
一维数组
二维数组
字符数组
字符串
数组元素的查找和排序
学****要求
掌握一维数组、二维数组的定义、初始化和引用。
掌握字符数组和字符串的概念及其处理函数。
掌握用数组进行编程的技术。
第4章数组和字符串
一个人N门课的成绩怎样存储和处理?
一个班N门课的成绩怎样存储和处理?......
数据的特点:具有相同的数据类型。
为了方便地使用这些数据,C语言提供了一种构造数据类型:数组。
例如:存储学生成绩用实型数组 int score[5];
其中:score是数组名。该数组可以存放5个成绩,分别用下标变量表示:score[0],score[1],…score[4]。
下标变量也称为数组元素。
一维数组
一维数组的定义
例如: int a[10];
float b[5];
数据类型数组名[常量表达式];
合法标识符
表示元素个数
下标从0开始
[ ]:下标运算符
单目运算符
优先级(1)
左结合不能用( )
数组元素的数据类型
常量表达式中可以包括常量和符号常
量,不能包含变量。
以下数组定义是正确的:
#define N 10
……
float score1[N], score2[N];
int num[10+N];
char c[26];
以下数组定义是不正确的:
int array(10);
int n; float score[n];
double b['a'.. 'd'];
char str[ ];
一维数组的定义(续)
数组在内存的存放
score[0]
score[1]
score[2]
score[3]
score[4]
低地址
高地址
score数组
a[0]
0
1
4
5
a[1]
a[2]
a[3]
a[4]
a[5]
2
3
a
编译时分配连续内存
内存字节数=数组维数*
sizeof(元素数据类型)
数组名表示数组首地址,是地址常量
一维数组的初始化
初始化:在定义数组时给数组元素赋初值。
,对数组全部元素赋初值。
此时可以省略数组长度,例如:int a[ ]={1,2,3,4,5};
,对数组部分元素赋初值。系统为其余元素赋 0 。
,编译出错
例如: int a[5]={0,1,2,3,4,5};
int a[5]={1,2,3,4,5};
等价于:a[0]=1; a[1]=2; a[2]=3; a[3]=4; a[4]=5;
int a[5]={1,2,3};
等价于:a[0]=1; a[1]=2; a[2]=3; a[3]=0; a[4]=0;
一维数组的初始化(续)
使用其它方法初始化
⑵利用输入语句初始化
main()
{ char as[26]; int i ;
for(i=0; i<26; i++) scanf("%c",&as[i]);
…...
}
⑴利用赋值语句初始化
main()
{ char as[26],ch;
for(ch='A';ch<='Z';ch++) as[ch-'A']=ch;
…...
}
一维数组元素的引用
格式:
例如:输入学生成绩
for(i=0;i<5;i++)
scanf("%f",&score[i]);
数组名[下标]
数组必须先定义,后使用。
只能逐个引用数组元素,不能一次引用整个数组。
下标可以是整型常量或整型表达式。
例如: int a[10];
printf(“%d”,a); ()
必须 for(j=0;j<10;j++)
printf(“%d\t”,a[j]); ()
第四章 数组 来自淘豆网www.taodocs.com转载请标明出处.