079.Pointer Function 指向函数的指针
2015-07-19 01:26
197 查看
---------------
main.m
---------------
#import
<Foundation/Foundation.h>
int
max(int* data ,
int
len) // 求最大值
{
int
max = *data;
for(int*
p = data ; p < data + len ; p++)
{
if(*p > max)
{
max = *p;
}
}
return max;
}
int
avg(int* data ,
int
len) // 求平均值
{
int
sum = 0;
for(int*
p = data ; p < data + len ; p++)
{
sum += *p;
}
return sum / len;
}
int
main()
{
int
data[] = {20,
12,
8,
36,
24};
//
定义指向函数的指针:fnPt
int
(*fnPt)() =
max;
NSLog(@"最大值:%d",
(*fnPt)(data,
5));
fnPt =
avg;
NSLog(@"平均值:%d",
(*fnPt)(data, 5));
}
一、编写本节代码的具体步骤:
1.参照003节的代码编写步骤。
二、本节代码涉及到的知识点:
1.当定义了函数之后,我们可以定义一个指针指向该函数,然后就可以通过该指针来调用该函数了。
2.如何定义一个指向函数的指针?函数返回值类型 (* 指针名称)();
3.如何使用指针调用函数?(* 指针名称)(参数);
4.指向函数的指针不支持加减运算和比较大小。
main.m
---------------
#import
<Foundation/Foundation.h>
int
max(int* data ,
int
len) // 求最大值
{
int
max = *data;
for(int*
p = data ; p < data + len ; p++)
{
if(*p > max)
{
max = *p;
}
}
return max;
}
int
avg(int* data ,
int
len) // 求平均值
{
int
sum = 0;
for(int*
p = data ; p < data + len ; p++)
{
sum += *p;
}
return sum / len;
}
int
main()
{
int
data[] = {20,
12,
8,
36,
24};
//
定义指向函数的指针:fnPt
int
(*fnPt)() =
max;
NSLog(@"最大值:%d",
(*fnPt)(data,
5));
fnPt =
avg;
NSLog(@"平均值:%d",
(*fnPt)(data, 5));
}
一、编写本节代码的具体步骤:
1.参照003节的代码编写步骤。
二、本节代码涉及到的知识点:
1.当定义了函数之后,我们可以定义一个指针指向该函数,然后就可以通过该指针来调用该函数了。
2.如何定义一个指向函数的指针?函数返回值类型 (* 指针名称)();
3.如何使用指针调用函数?(* 指针名称)(参数);
4.指向函数的指针不支持加减运算和比较大小。
相关文章推荐
- 080.Function Pointer Arg 函数指针作为函数参数
- 如何查看源码
- 078.Char Pointer Arg 字符指针作为函数参数
- JAVA基础_Java IO流 控制台到记事本、记事本到控制台及详解
- 076.Pointer Two Array 指向多维数组的指针
- 077.Char Pointer String 用指针表示字符串
- linux下svn的用法小结
- IOC----LightInject
- CD多线程的使用(三)
- [leetcode] 204.Count Primes
- 正确理解ThreadLocal,线程私有
- SQlife(数据库)
- oracle账号
- Spring依赖注入的几种实现方式
- eclipse.ini
- 075.Quick Sort 快速排序
- Android Studio AIDL 自定义类型找不到问题
- SQLServer检查表字段是否存在,不存在则创建的脚本
- 074.Traverse Array 遍历数组的常见错误
- 073.Traverse Array 遍历数组简化版