zoukankan      html  css  js  c++  java
  • C语言 指向函数的指针变量基础

    /*
        指向函数的指针变量
        类型名(*指针变量名)(函数参数列表)
        类型名是函数的返回值类型
        指向函数的指针变量只能指向定义时指定类型的函数
        指向函数的指针变量不可以进行加减等运算
        用函数名调用函数只能调用指定的一个,指针变量调用可以视情况先后调用不同的同类型函数
    */
    #include<stdio.h>

    int main(void)
    {
        int f(int a);       //声明f函数,函数名代表函数的起始地址
        int f1(int a,int b);
        

        int (*p)(int);      //定义一个指向返回值为整型且带有一个参数的函数的指针变量
        int (*q)(int,int);  //指向函数的指针变量在定义时就固定了只能指向什么样的函数,返回值类型和带有几个参数
        int a = 10,b = 5;
        int c;

        p = f;              //使指针变量指向f函数
        c = (*p)(a);        //通过指针变量运行f函数
        printf("%d ",a);

        //p = f1;           //报错,因为P在定义的时候只带有一个参数 
        q = f1;
        c = (*q)(a,b);
        printf("%d ",c);

        //以下时把指向函数的指针变量当作参数传递
        //通过这种方法,传入不同的函数名就可以实现调用不同的函数
        int fun(int (*x)(int,int),int,int); //声明一个函数,它的参数时指向函数的指针变量
        int i;
        i = fun(f1,a,b);        
        printf("%d ",i);

        return 0;
    }

    int f(int a)
    {
        return a;
    }

    int f1(int a,int b)
    {
        int sum = a + b;
        return sum;
    }

    int fun(int (*x)(int,int),int a,int b)
    {
        int i;
        i = (*x)(a,b);
        return i;
    }
  • 相关阅读:
    ASP.NET MVC框架(第四部分): 处理表单编辑和提交场景 【转】
    ASP.NET MVC框架 (第二部分): URL路径选择 【转】
    ASP.NET MVC框架(第三部分): 把ViewData从控制器传到视图 【转】
    SNS介绍
    测试代码在实际类的内部写还是外部写的思考
    敏捷开发:软件与文档
    TDD是开发方法还是开发方法学?
    命名空间元素的封装性
    个人感觉
    呜呜....可惜...呜呜,也谈谈测试驱动开发
  • 原文地址:https://www.cnblogs.com/hemage/p/13186057.html
Copyright © 2011-2022 走看看