C语言中函数指针的三种使用方法总结

 更新时间:2017年10月05日 09:53:20   作者:CharlinGod  
这篇文章主要介绍了 C语言中函数指针的三种使用方法总结的相关资料,希望通过本文大家能够彻底掌握指针的使用方法,需要的朋友可以参考下

 C语言中函数指针的三种使用方法总结

在这里分享一下自己的心得,希望和大家一起分享技术,如果有什么不足,还请大家指正。写出这篇目的,就是希望大家一起成长,我也相信技术之间没有高低,只有互补,只有分享,才能使彼此更加成长。

定义方式:int (*p)(int x, int y);

实现代码:  

#include <stdio.h>
int sum(int x, int y){
  return x + y;
}
int reduce(int x, int y){
  return x - y;
}
int multiply(int x, int y){
  return x * y;
}
float divide(int x, int y){
  if(y ==0)
    return 0;
  else
    return x *1.0f/ y;
}

struct Student{
  int age;
  float weight;
  char *name;
  void(*studentP());
}

int main(int argc, const char * argv[])
{

  // 1.定义函数指针
  int (*p)(int x, int y);
  // 2.初始化
  p = sum;
  // 3.赋值
  int s = p(3,2);
  // 4.打印
  printf("%d\n",s);//=5;

  //--------------
  printf("请输入数字1,2,3,4\n");
  int num;
  scanf("%d",&num);

  switch (num) {
    case 1:
      p = sum;
      break;
    case 2:
      p = reduce;
      break;
    case 3:
      p = multiply;
      break;
    case 4:
      p = divide;
      break;

  }
  int result = p(22,2);

  printf("%d\n",result);

  //结构体:
  struct Student stu = (22,88,"tom",studp);
  printf("结构体长度=%d",sizeof(stu));
  //1.
  stu.studp;
  //2.
  struct stu* stp = &stu;
  (*stp).studp;
  //3.
  stp -> studp;

  return 0;
}

如有疑问请留言或到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

  • 深入探索C++中stack和queue的底层实现

    深入探索C++中stack和queue的底层实现

    这篇文章主要介绍了C++中的stack和dequeue的底层实现,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-09-09
  • C++基础入门教程(九):函数指针之回调

    C++基础入门教程(九):函数指针之回调

    这篇文章主要介绍了C++基础入门教程(九):函数指针之回调,本文讲解了函数的地址、声明函数指针、历史原因、typedef挽救复杂的函数指针等内容,需要的朋友可以参考下
    2014-11-11
  • 一文搞懂C语言中的文件操作

    一文搞懂C语言中的文件操作

    文件操作想必大家掌握的并不熟练,确实因为我们用的并不多,而本节内容能够让大家初步认识文件操作,从文件认识到文件使用,让我们对c语言文件操作有个初步的了解
    2022-11-11
  • c++下迭代器总结

    c++下迭代器总结

    大家好,本篇文章主要讲的是c++下迭代器总结,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • VC++中内存对齐实例教程

    VC++中内存对齐实例教程

    这篇文章主要介绍了VC++中内存对齐的实现方法,具有很高的实用价值,需要的朋友可以参考下
    2014-08-08
  • C语言return, exit, abort的区别

    C语言return, exit, abort的区别

    这篇文章主要介绍了C语言return, exit, abort的区别,一般情况下,在C语言中退出一个程序用return,如果在main函数中,return在清理局部对象之后,会调用exit函数,和return相比,exit并不会销毁局部对象,下面一起进入文章了解更详细内容吧,需要的朋友也可以参考一下
    2022-01-01
  • C++实践排序函数模板项目的参考方法

    C++实践排序函数模板项目的参考方法

    今天小编就为大家分享一篇关于C++实践排序函数模板项目的参考方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • c++中容器之总结篇

    c++中容器之总结篇

    本文总结了C++的容器,其大致可以分为两个大类:顺序容器和关联容器,需要了解的朋友可以参考下
    2015-07-07
  • C++实现两个日期间差多少天的解决方法

    C++实现两个日期间差多少天的解决方法

    本篇文章用实例说明,在C++中实现两个日期间差多少天的方法。需要的朋友参考下
    2013-05-05
  • C++利用libcurl获取下载文件名称及大小

    C++利用libcurl获取下载文件名称及大小

    这篇文章主要为大家详细介绍了C++如何利用libcurl获取下载文件名称及大小的功能,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2023-03-03

最新评论