嵌入式学习DAY6 C语言05 - 实践
1.数组
1.数组的定义与声明
在C语言中,数组是相同类型元素的集合,通过连续内存存储。
声明格式:
数据类型 数组名[数组长度];
示例
int numbers[5]; // 声明一个包含5个整数的数组
char letters[10]; // 声明一个包含10个字符的数组
2.数组的初始化
数组可以在声明时直接初始化:
int numbers[5] = {1, 2, 3, 4, 5}; // 完全初始化
float values[3] = {1.1, 2.2}; // 部分初始化,未初始化的元素默认为0
char word[] = "hello"; // 自动计算长度(包括终止符'\0')
3.数组的访问
数组元素通过下标(索引)访问,下标从0开始:
int numbers[3] = {10, 20, 30};
printf("%d", numbers[1]); // 输出20
numbers[2] = 40; // 修改第三个元素
2.多维数组
1.二维数组
1.二维数组的定义与初始化
在C语言中,二维数组可以看作是一个表格,由行和列组成。定义时需要指定行数和列数:
// 定义一个3行4列的整型二维数组
int arr[3][4];
初始化可以直接赋值,也可以分行初始化:
// 直接初始化
int matrix[2][3] = {{1, 2, 3}, {4, 5, 6}};
// 部分初始化(未赋值的元素自动为0)
int table[3][2] = {1, 2, 3};
2.访问二维数组元素
通过双重索引访问元素,第一个索引表示行,第二个索引表示列:
int value = matrix[1][2]; // 获取第2行第3列的元素(值为6)
matrix[0][1] = 10; // 修改第1行第2列的元素
3.二维数组的内存布局
在内存中,二维数组按行优先顺序连续存储。例如int arr[2][3]的存储顺序为: arr[0][0] → arr[0][1] → arr[0][2] → arr[1][0] → arr[1][1] → arr[1][2]
3.数组的排序
1.冒泡排序
冒泡排序通过重复比较相邻元素并交换顺序错误的元素实现排序。
for (j = 0; j a[i+1])
{
tmp = a[i];
a[i] = a[i+1];
a[i+1] = tmp;
}
}
}
2.选择排序
选择排序每次从未排序部分选择最小元素放到已排序部分的末尾。
for (j = 0; j < len-1; j++)
{
min = j;
for (i = j + 1; i < len; i++)
{
if (a[i] < a[min])
{
min = i;
}
}
if (min != j)
{
tmp = a[min];
a[min] = a[j];
a[j] = tmp;
}
}
浙公网安备 33010602011771号