好的,以下是一份关于C语言数组学习笔记的markdown文档,希望对你有所帮助:

C 数组学习笔记

什么是数组?

数组是一种存储多个相同类型数据的连续内存空间的结构,这些数据可以是整数、字符、浮点数等基本数据类型,也可以是结构体和指针等复合数据类型。

数组的声明和初始化

在C语言中声明一个数组需要指定数组的类型、名称和元素个数,例如:

cCopy Code
int nums[10]; // 声明一个包含10个整数的数组 char str[50]; // 声明一个包含50个字符的数组 double prices[5]; // 声明一个包含5个双精度浮点数的数组

数组的初始化可以通过以下方式进行:

cCopy Code
int nums[5] = {1, 2, 3, 4, 5}; // 声明并初始化一个包含5个整数的数组 char str[6] = "hello"; // 声明并初始化一个包含6个字符的数组 double prices[] = {1.2, 3.4, 5.6}; // 声明并初始化一个包含3个双精度浮点数的数组,自动推导元素个数

数组的访问和操作

数组的元素可以通过索引访问和操作,数组的索引从0开始,例如:

cCopy Code
int nums[5] = {1, 2, 3, 4, 5}; printf("%d\n", nums[0]); // 输出第一个元素,即1 nums[2] = 10; // 修改第三个元素为10

数组的长度可以通过 sizeof 运算符计算得出,例如:

cCopy Code
int nums[5] = {1, 2, 3, 4, 5}; int len = sizeof(nums) / sizeof(nums[0]); printf("%d\n", len); // 输出数组的元素个数,即5

数组作为函数参数

数组可以作为函数的参数传递,这样在函数内部就可以操作数组了,例如:

cCopy Code
void printArray(int arr[], int len) { for (int i = 0; i < len; i++) { printf("%d ", arr[i]); } printf("\n"); } int main() { int nums[5] = {1, 2, 3, 4, 5}; int len = sizeof(nums) / sizeof(nums[0]); printArray(nums, len); // 调用printArray函数输出数组元素 return 0; }

数组实例:冒泡排序

冒泡排序是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就交换它们,直到没有任何一对数字需要交换为止。

下面是冒泡排序的C语言代码实现:

cCopy Code
void bubbleSort(int arr[], int len) { for (int i = 0; i < len - 1; i++) { for (int j = 0; j < len - i - 1; j++) { if (arr[j] > arr[j + 1]) { int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } } int main() { int nums[5] = {5, 3, 2, 4, 1}; int len = sizeof(nums) / sizeof(nums[0]); bubbleSort(nums, len); printArray(nums, len); return 0; }

输出结果为:1 2 3 4 5,表示数组已经按照从小到大的顺序排序好了。