Thinking in C++遇到的函数指针及应用
//
// Created by PC-Saw on 2019/1/24.
//#include <iostream>#define TEST 2/* 1. */ typedef int* (*(*fp1)(int))[10]; // 首先是一个函数指针,接受一个int型参数,返回一个指向10个int指针数组的指针
/* 2. */ typedef int (*(*fp2)(int,int,float))(int); // 首先是一个函数指针,接受三个参数,返回一个指向函数的指针,该函数接受一个int,返回int
/* 3. */ typedef int (*(*(*fp3)())[10])(); // 首先是一个函数指针,该函数没有参数,且返回一个指向含有10个函数指针的数组,该函数不接受参数,返回int
/* 4. */ int (*(*f4())[10])(); // 首先是一个函数,返回一个指针,指向了包含10个函数指针的数组int* (*(func1)(int))[10]
{std::cout << "func1() " << std::endl;//int *(*retPtrInt)[10] = (int*(*)[10])new int*[10];int *(*retPtrInt)[10] = new int*[1][10];for (int i = 0; i < 10; ++i) {int *tmp = new int;*tmp = i;(*retPtrInt)[i] = tmp;}return retPtrInt;
}int func2(int)
{std::cout << "func2() " << std::endl;return 0;
}typedef int(*funcInt)(int);int (*func3(int,int, float))(int)
{std::cout << "func3() " << std::endl;funcInt *retPtrFunc = new funcInt;*retPtrFunc = &func2;return *retPtrFunc;
}int (*(*(func5)())[10])()
{}int main()
{#if (TEST == 0)fp1 func = &func1;for (int i = 0; i < 10; ++i) {std::cout << *(*(*func)(2))[i] << std::endl;}
#endif
#if (TEST == 1)fp2 func = &func3;(*(*func)(1,1,1.1))(1);
#endif
#if (TEST == 2)#endifreturn 0;
}
Thinking in C++遇到的函数指针及应用相关推荐
- c/c++中的函数指针和指针函数
定义 1.指针函数,本质是函数,返回值为指针,形如,int *pfun(int, int),由于"*"的优先级低于"()"的优先级,所以等同于int *(pfu ...
- 函数指针amp;绑定: boost::functoin/std::function/bind
see link: https://isocpp.org/wiki/faq/pointers-to-members function vs template: http://stackoverflow ...
- 0709 C语言常见误区----------函数指针问题
1.函数指针的定义 对于函数 void test(int a, int b){ // } 其函数指针类型是void (* ) (int , int), 注意这里第一个括号不能少, 定义一个函数指针,v ...
- java跨函数跳转_C语言中将绝对地址转换为函数指针以及跳转到内存指定位置处执行的技巧...
1.方法一 要对绝对地址0x100000赋值,我们可以用 (unsigned int * ) 0x100000 = 1234; 那么要是想让程序跳转到绝对地址是0x100000去执行,应该怎么做? ...
- 函数指针(就做个笔记)
1,函数的地址 #include <stdio.h> int main(){int i=0;printf("main=%p\n",main);printf(" ...
- 函数指针--Nginx和Redis中两种回调函数写法
1.Nginx和Redis中两种回调函数写法 #include <stdio.h>//仿Nginx风格 //结构外声明函数指针类型 typedef void (*ngx_connectio ...
- 结构体中定义函数指针
结构体指针变量的定义,定义结构体变量的一般形式如下: 形式1:先定义结构体类型,再定义变量 struct结构体标识符 { 成员变量列表;- }; struct 结构体标识符 *指针变量名; 变量初始化 ...
- C++中函数指针的使用
A function pointer is a variable that stores the address of a function that can later be called thro ...
- C++函数指针解引用
声明函数的引用: int f( double ); int (* const pf)(double) = f; // pf是指向函数f()的常量指针 int (&rf)(doubl ...
- C++成员变量指针和成员函数指针【The semantics of funcitons】
原文:https://blog.csdn.net/laojiu_/article/details/68946915 (原文有笔误) 1. #include <cstdio> #includ ...
最新文章
- 为Eclipse plug-in(插件)创建语言包
- Python小游戏(打乒乓)
- 孙叫兽进阶之路之软件测试基础知识
- Mysql高性能优化技能总结
- CXF(2.7.10) - A simple JAX-WS service
- 基于redis的悲观锁
- SIP对话、事务详解
- AngularJS国际化配置
- IMDB 2003.07.12 最新排名
- java打印两个小人_Swing多线程实现奔跑的小人动画代码实现 | 彬菌
- 当硅谷码农还在吃着火锅唱着歌,工作已经快没了
- 2019(第八届)国际桥梁与隧道技术大会-会议议程
- 3D-CVF论文解读
- 结构化数据,半结构化数据,非结构化数据非区别和示例
- linux rm 提示权限不足
- 学渣之路:一个月拯救我英语四级
- 测量数据采集分析平台
- 19.2. /etc/shells
- 百度js 检测输入法_不明恶意攻击致lt;搜狗搜索gt;lt;搜索结果gt;跳转lt;百度搜索gt;技术原理分析...
- 敏捷集团老板怎么样?和大家分享一下我在敏捷的工作经历
热门文章
- java poi读取word中附件_Java POI导入word, 带图片
- gis影像格式img转为ecw_医学影像图片格式
- ios html5上架,iOS原生集成H5+详细流程
- Android开发(4) | 系统权限、MediaPlayer类 和 VideoView类 的应用——播放多媒体文件
- DeepLearning.ai 提炼笔记(5-1)-- 循环神经网络
- c++基础学习(11)--(模板、预处理器、信号处理)
- 《Java8实战》笔记(03):Lambda表达式
- STL源码剖析 数值算法 copy_backward 算法
- 英语口语Week 15 Wednesday
- 网友力荐教子名言 只有50句却能改变儿女一生