函数和指针

函数指针: 指向函数的指针(是指针)
指针函数:返回值是指针的函数(是函数)

#include <stdio.h>
#include <stdlib.h>

#define DF(N) int N(int x, int y) { return x * y; }

DF(fa); DF(fb); DF(fc);

typedef int (*pfun) (int x, int y);

int main() {
        int i;
        pfun *p;

        p = (pfun *) malloc(sizeof(pfun) * 3);
        p[0] = fa;
        p[1] = fb;
        p[2] = fc;

        int (**p1) (int x, int y);
        p1 = (int (**) (int x, int y))  malloc(sizeof(int (*) (int x, int y)) * 3);
        p1[0] = fa;
        p1[1] = fb;
        p1[2] = fc;

        for (i=0; i<3; i++) {
                printf("%d\n", (p1[i])(i+1, i+1));
        }
        return 0;
}

1.  void* (*(*f1) (int)) [10];
2.  float (*(*f2) (int, int, float)) (int);
3.  double (* (* (*f3) ()) [10]) ();
4.  int (* (* f4()) [10]) ()
1. f1是一个函数指针,指向的函数有一个int参数和一个指针返回值,该指针返回值指向一个大小为10的空类型指针数组;
2. f2是一个函数指针,指向的函数有int,int,float三个参数和一个指针返回值,该指针返回值指向一个参数为int返回值为float的函数;
3. f3是一个函数指针,指向的函数无参且返回一个数组指针,该数组指针指向一个含有10个函数指针的数组,数组类型是指向无参且返回值为double的函数指针;
4. f4是一个无参函数,该函数返回一个大小为10的函数指针数组,函数指针指向无参且返回int的函数。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容