C 语言之数组
一. 定义整型数组的方式
1. int array[5] = {0}; 给定数组元素个数,且赋值均为0
2. int array[] = {1,2,3}; 可不用给数组长度,根据元素值来进行判断
3. int array[5] = {1,2,3}; 长度与所给数字不符合时,剩余元素初始值则为0.
4. 数组下标由0开始. C语言中的语法糖 则为 array[i] 等价于 i[array].
5. 数组的输入与数组元素的初始化赋值借助for循环进行.
二. 冒泡排序与选择排序算法
1. 冒泡排序算法思想:依次比较数组各个元素的大小,从前至后,相邻两个比较,目标数滞后,进行换值操作.
源程序为升序排序
bool result = true;
int array [] = {2,4,5,7,8,9}
int size = 6;//数组长度
for (int i = 0; i < size -1 && result; i++) {
result = false;
for (int j = 0; j < size - 1 - i; j ++) {
if (array[j] > array[j + 1]) {
int temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
result = true;
}
}
}
2. 选择排序算法思想:类似指针,两个指针各一为,依次比较两个元素的大小,目标数前置.
源程序为升序排序
int array [] = {2,4,5,7,8,9}
int size = 6;//数组长度
for (int i = 0; i < size - 1; i++) {
int index = i;
for (int j = i + 1; j < size; j++) {
if (array[index] >array[j]) {
index = j;
}
}
if (index != i) {
int temp = array[index];
array[index] = a[i];
a[i] = temp;
}
}
三. 字符数组
1. 字符数组的定义
char str1[] = {'a','b','c'}; 字符数组的元素为字符类型
char str2[] = "abc";字符数组可直接赋值字符串但字符串结束标志位\0
2. 字符串操作的相关函数
a,b均为字符数组
以下函数停止条件均为检测到'\0'
strlen(a)获取a字符串或字符数组长度,返回值为long类型
strcpy(a,b)将b中的字符串拷贝到a中,注意a中的空间要足够的大
strcat(a,b)将b中的字符串拼接到a中,注意a空字符的长度要大于b
strcmp(a,b)将a与b中的字符串依次对应为做差(即字符的ASCII码值做差)判断两者字符串是否相同.
借助%s的格式控制符输出字符串
3. 内存分配空间
即为栈内存分配原则,从高地址位向低地址位分配,由低地址位向高地址位存储