指向数组的指针应该为数组指针,而不是函数指针
使用数组指针作为函数参数的C代码如下:
#include <stdio.h>
void sort(int (*p)[5]) { // *p与a等价
int i, j, t, n = 5;
for (i = 0; i < n - 1; i++) { // 冒泡排序
for (j = 0; j < n - 1 - i; j++) {
if ((*p)[j] > (*p)[j + 1]) { // 更大的数交换到后面
t = (*p)[j];
(*p)[j] = (*p)[j + 1];
(*p)[j + 1] = t;
}
}
}
}
int main() {
int a[5] = {5, 4, 2, 3, 1}, i;
int (*p)[5] = &a; // 指向数组的指针
sort(p);
printf("数组排序后为:\n");
for (i = 0; i < 5; i++)
printf("%d ", a[i]);
return 0;
}
运行结果如下:
可见成功将数组从小到大排序,望采纳~