| 网站首页 | 业界新闻 | 小组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 235 人关注过本帖
标题:注册后第一次发帖,先分享一段代码,表明自己的学习进度。
只看楼主 加入收藏
沈和
Rank: 2
等 级:论坛游民
威 望:2
帖 子:15
专家分:61
注 册:2019-8-26
  问题点数:0  回复次数:0   
注册后第一次发帖,先分享一段代码,表明自己的学习进度。
使用函数指针的一个例子。
程序代码:
#include <stdio.h>
#include <stdlib.h>

#define LENGTH 3

int main(void) {
    double *map(double (*)(double), double *, int); // 第一个参数是函数指针
    double pow2(double);

    double * p = map(pow2, (double[LENGTH]){1.2, 2.8, 3.4}, LENGTH); // 第一个参数为函数名

    for (int i = 0; i < LENGTH; ++i) {
        printf("%lf, ", p[i]);
    }
    puts("");
    free(p);
    p = NULL;
    return 0;
}

double pow2(double num) { return num * num; }

double *map(double (*pf)(double), double *p, int n) {
    double *pd = malloc(n * sizeof(double));
    for (int i = 0; i < n; i++) {
        pd[i] = pf(p[i]); // 函数指针pf, K&R C只允许(*pf)(p[i]), ANSI C以及以后的标准允许两种
    }
    return pd;
}

输出结果是
1.440000, 7.840000, 11.560000,
搜索更多相关主题的帖子: 发帖 函数 LENGTH int double 
【推荐】大型监控、工控、组态VC++./C#源码组件库2019下载!
【推荐】超50万数控、建模仿真、电力VC++/.NET图形源码库下载!
【推荐】专业CAD\GIS\业务流程VC++/C#可视化图形软件源码库下载!
2019-08-26 17:32
快速回复:注册后第一次发帖,先分享一段代码,表明自己的学习进度。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.170646 second(s), 8 queries.
Copyright©2004-2019, BCCN.NET, All Rights Reserved