美文网首页
函数和指针

函数和指针

作者: artsing | 来源:发表于2018-05-14 17:41 被阅读0次

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

#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的函数。

相关文章

  • C:函数指针的坑

    关于该死的函数指针和指针函数 先来个目录 常量指针、指针常量 数组指针、指针数组 函数指针、指针函数 1、先看第一...

  • 函数指针和指针函数

    函数指针 概念:函数指针,顾名思义是一个指针变量,指向一个函数。代码: 1、定义:void(* fun_p)(ch...

  • 指针函数和函数指针

    指针函数 指针函数是指带指针的函数,即本质是一个函数,函数返回类型是某一类型的指针。int *f(x,y); 函数...

  • 指针函数和函数指针

    指针函数 当一个函数声明其返回值为一个指针时,实际上就是返回一个地址给调用函数,以用于需要指针或地址的表达式中。 ...

  • 指针函数和函数指针

    1、指针函数 指针函数是指带指针的函数,即本质是一个函数。函数返回类型是某一类型的指针。声明格式如下: 类型标识符...

  • 指针函数和函数指针

  • C++:函数指针 & 返回函数指针的函数

    函数指针 & 返回函数指针的函数 一、函数指针的声明和使用 声明一个函数指针,给它赋值并调用它指向的函数 函数指针...

  • 指针之 函数指针和指针函数

    指针函数 定义 指针函数,简单的来说,就是一个返回指针的函数,其本质是一个函数,而该函数的返回值是一个指针。 声明...

  • C++ 函数指针和函数类型

    函数指针和函数类型 函数指针指向的是函数而非对象。和其他指针类型一样,函数指针指向某种特定类型。 函数类型由它的返...

  • 指针函数,函数指针,和位运算

    1.函数指针和指针函数的区别 函数指针是指向函数的指针变量,即本质是一个指针变量 指针函数可用于将一个函数作为参数...

网友评论

      本文标题:函数和指针

      本文链接:https://www.haomeiwen.com/subject/wbnddxtx.html