1、一维数组
数组是构造数据类型
区分定义数组 和数组元素 (int a[10] a[10])
必须保证下标不能越界
数组是一个整体,不能直接参与运算,只能对单个元素进行处理。
2、数组排序(冒泡排序)
int a[7] = {3 , 1 , 7 , 23 , 12 , 87 , 2};
//外层循环控制要比较的趟数,n个元素需要比较n-1次
for (int i = 0; i < 6; i++) {
//内层循环控制在每一趟要比较的次数,每进来一次就少比较一次
for ( int j = 0; j < 6 - 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 < 7; i++) {
printf("%d " , a[i]);
}
//选择排序
int a[5] = {7 , 4 , 6 , 2 , 1};
int k = 0;
for (int i = 0; i < 4; i++) {
k = i;//假设第a[i]元素就是最小值
for (int j = i + 1; j < 5; j++) {
if (a[k] > a[j]) {
k = j;
}
}
if (i != k) {
int temp = a[i];
a[i] = a[k];
a[k] = temp;
}
}
for (int i = 0; i < 5; i++) {
printf("%-3d " , a[i]);
}
3、字符数组
char c[] = {‘i‘ , ‘P‘ , ‘h‘ , ‘o‘ , ‘n‘ , ‘e‘};//长度为6
//c语言字符串结束都有\0
char a[6] = "iPhone";//长度为7 ‘\0’
unsigned long result = strlen(a);//遇到\0 结束,\0不需要计算
unsigned long s = sizeof(a);//sizeof() 内存大小
//printf("%s" , a);
//字符串所占的空间 至少要比 字符串长度大1,因为 字符串以 ‘\0’ 表示结束。系统提供的字符串处理函 数是根据 ‘\0’ 来判断字符串是否结束.
printf("%ld " , result);
printf("%ld" , s);
strlen() 计算字符串?长度
strcpy() 字符串拷?贝
strcat() 字符串拼接
strcmp() 字符串?比较