编程实现:定义含有5个元素的整型数组,利用指向数组的函数指针作为函数参数传递给子函数从小到大排序?

如题所述

指向数组的指针应该为数组指针,而不是函数指针

使用数组指针作为函数参数的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;

}

运行结果如下:

可见成功将数组从小到大排序,望采纳~

温馨提示:答案为网友推荐,仅供参考
相似回答