一个冒泡法排序的函数,实现用指针法对10个整数按由小到大顺序排序
在主函数中定义数组a存放10个整数,定义int *型指针变量p并指向
a[0]。定义函数sort,采用冒泡法使数组a中的元素按有小到大排列。在主函数中调用sort函数,用指针变量p或数组名a做实参,sort函数的形参用数组名或指针变量接收主函数中数组的首地址。
#include <stdio.h>
void sort(int *a, int len) {
for (int i = 0; i < len - 1; i++) {
for (int j = 0; j < len - i - 1; j++) {
if (*(a + j) > *(a + j + 1)) {
int temp = *(a + j);
*(a + j) = *(a + j + 1);
*(a + j + 1) = temp;
}
}
}
}
int main() {
int a[10] = {2, 1, 5, 4, 3, 7, 6, 9, 8, 10};
int *p = &a[0];
sort(p, 10);
for (int i = 0; i < 10; i++) {
printf("%d ", *(p + i));
}
return 0;
}
上边代码定义了一个sort函数用于排序,参数为一个整型数组a和数组长度len,使用指针访问数组元素来进行排序。在主函数中定义了一个包含10个整数的数组a,并定义了一个指向a[0]的指针变量p。调用sort函数进行排序,实参使用指针变量p,形参使用数组名a。最后,使用指针变量p输出排序后的数组元素。