• c语言之指向函数的指针


    一个函数在编译时被分配给一个入口地址。这个函数的入口地址就被称为函数指针。

    #include<stdio.h>
    #include<iostream>
    int max(int, int);
    int main() {
        int (*p)(int,int);
        int a, b, c;
        p = max;
        printf("请输入a,b的值,以空格隔开:
    ");
        scanf_s("%d %d", &a, &b);
        c = (*p)(a, b);
        printf("a=%d,b=%d,max=%d
    ", a, b, c);
        system("pause");
        return 0;
    }
    int max(int a, int b) {
        if (a >= b) {
            return a;
        }
        else
        {
            return b;
        }
    }

    用指向函数的指针作函数参数:

    #include<stdio.h>
    #include<iostream>
    int max(int, int);
    int min(int, int);
    int add(int, int);
    int process(int a, int b, int(*func)(int a, int b));
    int main() {
        int a, b;
        printf("请输入a,b的值,以空格隔开:
    ");
        scanf_s("%d %d", &a, &b);
        printf("a=%d,b=%d,max=%d
    ", a, b, process(a,b,max));
        printf("a=%d,b=%d,min=%d
    ", a, b, process(a, b, min));
        printf("a=%d,b=%d,add=%d
    ", a, b, process(a, b, add));
        system("pause");
        return 0;
    }
    int max(int a, int b) {
        if (a >= b) {
            return a;
        }
        else
        {
            return b;
        }
    }
    int min(int a, int b) {
        if (a >= b) {
            return b;
        }
        else
        {
            return a;
        }
    }
    int add(int a, int b) {
        return a + b;
    }
    int process(int a, int b, int(*func)(int a,int b)) {
        return (*func)(a, b);
    }

    输出:

  • 相关阅读:
    C语言的指针移位问题
    makefile、gdb使用记录
    MUSIC算法学习笔记
    时间格式转换
    linux网络编程笔记——UDP
    linux网络编程笔记——TCP
    bash里,echo对换行符的处理
    树莓派使用8188eu无线网卡
    时间都去哪了?——安卓GTD工具
    让sublime text 2更好地支持Python
  • 原文地址:https://www.cnblogs.com/xiximayou/p/12121810.html
Copyright © 2020-2023  润新知