一、一位数组
掌握一维数组的使用
数组概述:
数组
构造数据类型之一
数组是具有一定顺序关系的若干个变量的集合,组成数组的各个变量称为数组的元素
数组中各元素的数据类型要求相同,用数组名和下标确定。数组可以是一维的,也可以是多维的。
一维数组:
一维数组的定义
所谓一维数组是指只有一个下标的数组。它在计算机的内存中是连续存储的。
C语言中,一维数组的说明一般形式如下:
<存储类型> <数据类型 > <数组名>[<表达式>] ;
注意事项
C语言对数组不作越界检查,使用时要注意
int a[5]; a[5] = 10
关于用变量定义数组维数
int i = 15; int a[i]
一维数组的引用:
数组必须先定义,后使用
只能逐个引用数组元素,不能一次引用整个数组
数组元素表示形式:数组名[下标]
其中:下标可以是常量或整型表达式
例 int a[10];
printf(“%d”, a); (错)
for(j=0;j<10;j++)
printf(“%d\t”, a[j]); (对)
一维数组的初始化:
初始化方式:在定义数组时,为数组元素赋初值
int a[5]={1,2,3,4,5};
说明
数组不初始化,其元素值为随机数
对static数组元素不赋初值,系统会自动赋以0值
只给部分数组元素赋初值
程序举例
冒泡排序
它重复地走访过要排序的数列,一次比较两个元素,如果顺序错误就交换。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
总结与思考
主要介绍了一维数组的概念、引用和初始化。演示了有关一维数组的程序的编写。
思考
如何改进冒泡排序的效率?
二、二维数组
程序举例
打印杨辉三角的前十行
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
…
总结与思考
主要讲解了二维数组的用法,包括二维数组的定义、引用、初始化,存储等。
思考
有一个3×4的矩阵,要求输出其中值最大的元素的值,以及它的行号和列号。
三、字符数组
字符数组是元素的数据类型为字符类型的数组
–char c[10], ch[3][4];
字符数组的初始化
–逐个字符赋值
–用字符串常量
字符数组初始化:
字符串:
C语言中无字符串变量,用字符数组处理字符串
字符串结束标志:‘\0’
程序举例
输入一个字符串,然后将其逆序输出
总结与思考
主要介绍了字符数组的定义和初始化,字符串的定义及用法
思考
C语言中,字符数组和字符串有什么区别和联系?
C语言中,有哪些操作字符串的函数?
四、字符串函数值strlen函数
字符串长度函数strlen:
格式:strlen(字符数组)
功能:计算字符串长度
返值:返回字符串实际长度,不包括‘\0’在内
\xhh表示十六进制数代表的符号
\ddd表示8进制的
例:对于以下字符串,strlen(s)的值为:
char s[10]={‘A’,‘\0’,‘B’,‘C’,‘\0’,‘D’};
char s[ ]=“\t\v\\0will\n”;
char s[ ]=“\x69\141\n”;
答案:1 3 3
字符串函数之strcpy函数:
格式:strcpy(字符数组1,字符串2)
功能:将字符串2,拷贝到字符数组1中去
返值:返回字符数组1的首地址
说明:
字符数组1必须足够大
拷贝时‘\0’一同拷贝
字符串函数之strcat函数:
字符串连接函数strcat
格式:strcat(字符数组1,字符数组2)
功能:把字符数组2连到字符数组1后面
返值:返回字符数组1的首地址
说明:
字符数组1必须足够大
连接前,两串均以‘\0’结束;连接后,串1的‘\0’取消,新串最后加‘\0’
字符串函数之strcmp函数:
格 式:strcmp(字符串1,字符串2)
功 能:比较两个字符串
比较规则:对两串从左向右逐个字符比较
(ASCII码),直到遇到不同字符或‘\0’为止
返 值:返回int型整数
a. 若字符串1< 字符串2, 返回负整数
b. 若字符串1> 字符串2, 返回正整数
c.若字符串1== 字符串2, 返回零
总结与思考
主要介绍了C语言中常见的字符串函数.
包括:strcpy、strcat、strcmp、strlen。
思考:
使用字符串拷贝函数strcpy,有什么注意事项?
字符
七、字符串函数之扩展用法