实参、形参都是指针,实现c语言冒泡算法c
时间: 2024-12-25 12:31:07 浏览: 5
在 C 语言中,实参 (actual parameters) 和形参 (formal parameters) 并非直接表示指针,而是用于函数调用过程中的参数传递机制。形参是函数定义时声明的变量,它们是在函数内部使用的局部变量;而实参则是实际传入函数的值。
冒泡排序是一种简单的排序算法,它的核心思想是反复遍历待排序数组,比较相邻元素,如果顺序错误就交换位置,通过多次这样的遍历直到整个序列有序。下面是一个基本的冒泡排序算法的 C 语言实现示例:
```c
#include <stdio.h>
// 定义冒泡排序函数,接受一个整型数组和其长度作为参数
void bubbleSort(int arr[], int n) {
for (int i = 0; i < n - 1; i++) { // 遍历数组
for (int j = 0; j < n - i - 1; j++) { // 每轮内再遍历并比较
if (arr[j] > arr[j + 1]) { // 如果当前元素大于下一个元素
// 使用临时变量存储 arr[j+1]
int temp = arr[j];
// 将 arr[j+1] 赋值给 arr[j]
arr[j] = arr[j + 1];
// 将临时变量赋值给 arr[j+1]
arr[j + 1] = temp;
}
}
}
}
// 主函数测试冒泡排序
int main() {
int nums[] = {64, 34, 25, 12, 22, 11, 90};
int len = sizeof(nums) / sizeof(nums[0]);
printf("Before sorting:\n");
for (int i = 0; i < len; i++) {
printf("%d ", nums[i]);
}
bubbleSort(nums, len);
printf("\nAfter sorting:\n");
for (int i = 0; i < len; i++) {
printf("%d ", nums[i]);
}
return 0;
}
```
在这个例子中,`bubbleSort` 函数的 `arr` 参数并不是指针,它直接接收数组内容。然而,在函数内部,我们并没有使用指针操作,而是通过数组下标来访问和修改元素的值。
阅读全文