• 函数指针入门


    函数指针即为指向一个函数的指针。
    要定义一个函数指针,只需将需要指向的函数的原型中函数名的前面加一个"*"号即可。
    比如,函数foo的原型为:

    int foo(int, char, struct node);


    那么要建立一个指向foo的指针,名为bar,就可以这样写:

    int (*bar)(int, char, struct node);

    要令bar指向foo函数,可以这样写:

    bar = foo;

    也可以这样写:

    bar = &foo;

    要使用bar来调用foo函数,可以这样写:

    (*bar)(1, 'a', NULL);

    其中,函数指针名前的"*"号并不是必须的。
    所以,也可以这样写:

    bar(1, 'a', NULL);

    可是,如果每次定义函数指针时都要输入完整函数原型的话,那就太麻烦了。
    我们可以用typedef来定义一个函数指针类型,比如这样:

    typedef int (*func)(int, char, struct node);

    可以看到,这个语句和foo函数的原型大同小异,只不过名字变了下。接下来,我们就可以用它来定义一个函数指针:

    func baz;

    是不是方便了很多?我们可以用同样的方法来调用它:

    (*baz)(233, 'c', NULL);
    baz(233, 'd', NULL);

    我们看两张截图,加深理解:


    最后说一句,不要尝试去对函数指针进行加减乘除操作,否则你就等着段错误提示吧。

  • 相关阅读:
    vim操作
    brew安装
    pycharm工程包导入问题
    mongodb的更新语句
    mongodb的增加和删除
    Mongodb中 数据库和集合的创建与删除
    mongodb服务器启动
    mac 根目录下新建文件夹并赋予权限
    常用的python标准库
    mac显示隐藏文件夹和文件
  • 原文地址:https://www.cnblogs.com/KM-Y/p/tutoralwithfuncpoint.html
Copyright © 2020-2023  润新知