当前位置: 首页> 游戏> 单机 > 学习C语言第十四天

学习C语言第十四天

时间:2025/7/9 12:19:38来源:https://blog.csdn.net/zh060515/article/details/141116432 浏览次数:0次

第一项   函数指针

指向函数的指针变量

可用于调用函数传递参数

声明:

typedef int (*fun_ptr)(int,int); // 声明一个指向同样参数、返回值的函数指针类型

第二项   回调函数 

一个通过函数指针调用的函数,由别人的函数执行时调用你实现的函数。

eg:

#include <stdlib.h>  
#include <stdio.h>
 
void populate_array(int *array, size_t arraySize, int (*getNextValue)(void))
{
    for (size_t i=0; i<arraySize; i++)
        array[i] = getNextValue();
}
 
// 获取随机值
int getNextRandomValue(void)
{
    return rand();
}
 
int main(void)
{
    int myarray[10];
    /* getNextRandomValue 不能加括号,否则无法编译,因为加上括号之后相当于传入此参数时传入了 int , 而不是函数指针*/
    populate_array(myarray, 10, getNextRandomValue);
    for(int i = 0; i < 10; i++) {
        printf("%d ", myarray[i]);
    }
    printf("\n");
    return 0;
}

41 18467 6334 26500 19169 15724 11478 29358 26962 24464

populate_array() 函数定义了三个参数,其中第三个参数是函数的指针,来设置数组的值。

定义了回调函数 getNextRandomValue(),返回一个随机值,作为一个函数指针传递给 populate_array() 函数。

populate_array() 将调用 10 次回调函数,并将回调函数的返回值赋值给数组。

关键字:学习C语言第十四天

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: