玩具侠-C语言学习之函数指针(2)
来源:互联网 发布:mac安装sublime text2 编辑:程序博客网 时间:2024/04/30 22:50
回顾:上一节对程序的运行过程及内存的数据存储进行了简单的一个学习了解,大致有了一定的概念,整个过程的理解还需要后面慢慢了解深入。
今天记录下函数指针的学习,
1、函数指针
2、指针函数
1、函数指针简单点说就是函数的指针,或者可以理解是函数的编号,通过这个指针编号就可以直接调用这个函数,函数指针的定义格式如:
int (*myint)(int a,int b),返回类型 (*自己定义的函数指针名)(函数参数个数),这样就定义好了一个函数指针。
2、指针函数:说的详细点就是返回类型是指针的函数,与返回值是整形或是char的函数一样,更深一层的理解既然返回的是指针,那么这个指针也可以是函数指针,所以也可以理解为指针函数是返回类型为函数指针的函数。
下面看代码实例:
#include "stdafx.h"int (*mfun)(int,int); //定义函数指针int *zhFun(int a,int b);//定义指针函数int glFun(int a,int b);//定义函数int main(int argc, char* argv[]) //int argc 表示命令行参数的个数,char* argv[] 表示具体参数字符串内容,是一个数组指针。{//int gl = glFun(3,4);//mfun = glFun;mfun = &glFun; //也可直接glFun赋值,函数名本身就是指针int gl = (*mfun)(3,4);//函数指针 也可以不要*为了区别一般都加上*号int zh = *zhFun(3,4);//指针函数 printf("%d\n",gl);//12printf("%d\n",*zh)//12 return 0;}int glFun(int a,int b){ int ab = a*b; return ab; }int* zhFun(int a,int b){ int mm = a*b; return &mm;}
上面代码说明了一个函数指针,和指针函数的简单用法,为加深理解,下面在扩张一下,说一下
指针函数返回类型是函数指针的用法,
#include "stdafx.h"typedef int (*CDFun)(int,int); //定义函数指针别名为CDFun,类似它就是自己定义的个新的函数指针类型CDFun mfun; //定义函数指针int *zhFun(int a,int b);//定义指针函数int glFun(int a,int b);//定义函数CDFun fhuiFun(int cs);//声明返回值是函数指针int main(int argc, char* argv[]){ mfun = &glFun; //也可直接glFun赋值,函数名本身就是指针 int gl = (*mfun)(3,4);//函数指针 int zh = *zhFun(3,4);//指针函数 CDFun fh = fhuiFun(0); int mm = (*fh)(3,4); printf("%d\n",gl);//12 printf("%d\n", zh);//12 printf("%d\n", mm);//12return 0;}CDFun fhuiFun(int cs){ if(cs == 0) { return &glFun; //返回函数指针 也可以直接就是函数名glFun}}int glFun(int a,int b){ int ab = a*b; return ab; }int* zhFun(int a,int b){ int mm = a*b;return &mm;}
上面fhuiFun指针函数,就是一个返回值是“函数指针”的指针函数,上面的注释比较清楚,相信各位都可以理解,有问题请留言
另外做个广告啊,支持下我的淘宝玩具店哦:https://shop65858016.taobao.com/index.htm
1 0
- 玩具侠-C语言学习之函数指针(2)
- 玩具侠-C语言学习之程序运行及内存存储(1)
- c语言学习笔记之函数指针和指针函数
- iOS开发学习之C语言---C10 函数指针-2
- C语言--函数指针学习
- c语言之函数指针
- C语言之函数指针
- C语言之函数指针
- C语言之函数指针
- C语言之指针函数
- 【学习ios之路:C语言】指针函数
- iOS开发学习之C语言---C10 函数指针-1
- iOS开发学习之C语言---C10 函数指针-3
- c语言学习笔记31之函数指针
- C语言再学习之:指针详解(2)
- C语言学习之指针
- C语言学习之指针
- C语言学习之指针
- 外观模式由误解到理解(登录窗体为例)
- java.lang.IllegalArgumentException: Pointcut is not well-formed: expecting ‘name pattern’
- sqlserver实现oracle的instr函数(未完)
- AngularJS中的Provider们:Service和Factory等的区别
- Tomcat 启动,错误:The APR based Apache Tomcat Native library
- 玩具侠-C语言学习之函数指针(2)
- [POJ2125]Destroying The Graph 做题笔记
- CEF中访问修改HTML DOM元素
- java中有没有指针
- 经典排序算法总结篇
- 分治法来解决大整数乘法问题
- iOS开发: initializer element is not constant错误
- jquery的ajax传送乱码问题
- [JavaScript]操作下拉列表