zoukankan      html  css  js  c++  java
  • 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);
    }

    输出:

  • 相关阅读:
    [SQL Server]如何激活一个账号
    sqlcmd命令详解
    SQL Server Express 2008 安装程序
    SharePoint中的本地化(Localization)
    2009十大企业应用产品
    2010年10大战略技术
    十个理由促使小企业敢于触碰“云计算”
    如何改进网站性能
    sqlcmd详细示例
    VMware网络配置详解
  • 原文地址:https://www.cnblogs.com/xiximayou/p/12121810.html
Copyright © 2011-2022 走看看