主要内容:数组、排序
一、数组(一维数组)
定义:相同数据类型的元素组成的一组数据
分为一维数组、二维数组、多维数组、字符数组、字符串数组
数组是一种构造类型,相同数据类型组成的新数据类型,数组的每一个成员称为一个数组元素
类型说明符 数组名[ 常量表达式 ] = { 值1,值2,值3... };
写法:
int a[ 3 ] = { 2, 3, 4 }
int b[ ] = { 2, 3, 4 }
int c[ 3 ] = { }
int d[ 3 ] = { 0 }
访问数组中的元素需要索引,默认从 0 开始(索引可以是常量,也可以是变量)
注意:数组中的元素的最大索引不能超过数组的大小
示例:int a [ 10 ] 和 a[10]的区别
int a [ 10 ]的意义是定义一个大小为10的数组
a [ 10 ]表示的是在数组a中索引为10的数组元素
二、排序(冒泡排序)
升序排列:相邻的两个元素进行比较,大的往右放,第一次比较结束后得到最大值在右边
再按相同的方法进行比较,结果得到第二大值
。。。
最后得到从小到大的排列
冒泡排序用到for循环和循环嵌套
示例:int a[] = { 4, 2, 7, 3, 9 } ;用冒泡排序进行排序
for (int i = 0; i < 5 - 1; i++){
for (int j = 0; j < 5 - 1 - i; j++) {
if ( a[ j ] > a[ j + 1] ) {
int temp = a[ j ] ;
a [ j ] = a [ j + 1 ] ;
a [ j + 1 ] = temp;
}
}
}
for (int i = 0; i < 5; i++) {
printf ( " %d " , a[ i ] ) ;
}
三、字符数组
数组元素由字符组成的数组——字符数组(类型与一维数组相似,类型修饰符为 char )
示例:char c [ 10 ] = { ‘ i ’,‘ p ’,‘ o ’,‘ n ’,‘ e ’ };
char c [ 10 ] = " iPhone " ;
字符数组末尾默认以 ‘ \0 ’ 结尾,如果在后面加上 ' \0 ',则系统默认为输出字符串
字符数组的4个函数
strlen() 求字符数组的长度
strcpy() 拷贝字符数组
strcat() 拼接字符数组
strcmp() 字符串的比较
注意:字符串所占的空间至少要比字符串的长度大 1 ,因为字符串后面以 ' \0 ' 表示结束,系统是根据字符数组后面是否有 ' \0 ' 判断字符串是否结束
数组通常与循环结合使用,数组的下标是默认从0开始的,最大到数组的容量减1,一定要注意下标越界的问题,字符数组要注意 ' \0 '