080.Function Pointer Arg 函数指针作为函数参数
2015-10-26 15:45
190 查看
--------------- main.m ---------------
#import <Foundation/Foundation.h>
void map(int*
data , int len , int (*fn)())
{
for(int*
p = data ; p < data + len ; p++)
{
printf("%d,",
(*fn)(*p));
}
printf("\n");
}
int noChange(int val)
{
return val;
}
int square(int val) // 计算平方
{
return val * val;
}
int cube(int val)// 计算立方
{
return val * val * val;
}
int main()
{
int data[] = {20, 12, 8, 36, 24};
map(data , 5 , noChange);
NSLog(@"计算数组元素平方");
map(data , 5 , square);
NSLog(@"计算数组元素立方");
map(data , 5 , cube);
}
一、编写本节代码的具体步骤:
1.参照003节的代码编写步骤。
二、本节代码涉及到的知识点:
1.map函数的第三个参数是一个指向函数的指针。
2.每次调用map函数时,可以动态传入一个函数,传入的函数不同,map函数也因此变得不同。
#import <Foundation/Foundation.h>
void map(int*
data , int len , int (*fn)())
{
for(int*
p = data ; p < data + len ; p++)
{
printf("%d,",
(*fn)(*p));
}
printf("\n");
}
int noChange(int val)
{
return val;
}
int square(int val) // 计算平方
{
return val * val;
}
int cube(int val)// 计算立方
{
return val * val * val;
}
int main()
{
int data[] = {20, 12, 8, 36, 24};
map(data , 5 , noChange);
NSLog(@"计算数组元素平方");
map(data , 5 , square);
NSLog(@"计算数组元素立方");
map(data , 5 , cube);
}
一、编写本节代码的具体步骤:
1.参照003节的代码编写步骤。
二、本节代码涉及到的知识点:
1.map函数的第三个参数是一个指向函数的指针。
2.每次调用map函数时,可以动态传入一个函数,传入的函数不同,map函数也因此变得不同。
相关文章推荐
- linux虚拟机与windows主机共享文件夹
- 7种形式的Android Dialog使用举例
- Python中list、tuple、dict区别
- logstash 收集tomcat log demo
- C#中弹出式窗体如何避免闪烁?
- 【Java】JavaEE性能问题的10大诱因
- ligerui ligerGrid 先填写搜索条件,在查询 因为如果数据比较多时,这样子比较消耗流量
- 网络开发---UIWebView
- MVC4.0 WebApi如何设置api支持namespace
- 老李分享:什么是好战略
- [转载]android service 使用以及aidl使用
- UIViewController的生命周期
- Android开发的一些小细节和一些常用的小东西
- 081.Return Pointer Function 返回指针的函数
- Android Studio(一) 安装
- UED大全
- 【js】JSON.stringify 语法实例讲解
- 分页查询(转)
- 【图论训练】最小拓扑序
- 【iOS】The executable was signed with invalid entitlements.