小编use*_*456的帖子

将数组作为参数传递给C中的函数指针

我目前正在学习函数指针,并一直在练习排序数组函数.关键是我在函数中输入一系列数字,程序将按升序重新排列.当我通过价值函数进行调用时,它工作正常(我认为这就是你所说的).但是,当我尝试为函数指定一个指针并尝试使用该指针而不是函数本身时,它会返回一堆错误.我确定问题是由于我将数组作为参数传递给函数POINTER.这是我的代码:

#include<stdio.h>
#define SIZE 10

void sort(int a[], int size);
void swap(int *elt1, int *elt2);
main()
{
    int i; int array[SIZE]= {1,9,3,2,4,100,43,23,32,12};
    void (*fptr)(int array, int SIZE);
    fptr = &sort;
    (*fptr)(array,SIZE);
    /*sort(array, SIZE);*/
    for(i=0;i<SIZE;i++)
    {
            printf("%d\n", array[i]);
    }
    return 0;
}

void sort(int a[], int size)
{
    int pass, j;
    for(pass = 0; pass<size;pass++)
    {
            for(j=0;j<size;j++)
            {
                    if(a[j]>a[j+1])
                    {
                            swap(&a[j], &a[j+1]);
                    }
            }

    }


}


void swap(int *elt1, int *elt2)
{
    int hold;
    hold = *elt1;
    *elt1 = *elt2;
    *elt2 …
Run Code Online (Sandbox Code Playgroud)

c arrays pointers arguments function

0
推荐指数
1
解决办法
2102
查看次数

标签 统计

arguments ×1

arrays ×1

c ×1

function ×1

pointers ×1