VC:返回指向函数的指针
2014-03-03 20:39
330 查看
刚开始接触函数指针,感觉特别深奥难懂,经过一个小代码的测试,终于有了一点感悟。
#include <iostream>
#include <string>
using namespace std;
using std::string;
//使用typedef为函数指针定义同义词
typedef int (*PF)(int, int);
//返回a + b
int add(int a, int b)
{
cout<<"a + b = "<<a + b<<endl;
return a + b;
}
//返回a - b
int sub(int a, int b)
{
cout<<"a - b = "<<a - b<<endl;
return a - b;
}
//定义返回函数指针的函数
PF ff(int c)
{
//由c判断执行加法还是减法,相应的将函数指针返回
if(c > 0)
return add;
else
return sub;
}
int main()
{
//间接调用
PF fun1= ff(1);//根据参数值判断返回哪个函数指针(add或者sub)
fun1(4, 5);
PF fun2 = ff(-1);
fun2(4, 5);
//直接调用
(*ff(0))(10, 10);
return 0;
}
结果无误, 哈哈继续努力!
#include <iostream>
#include <string>
using namespace std;
using std::string;
//使用typedef为函数指针定义同义词
typedef int (*PF)(int, int);
//返回a + b
int add(int a, int b)
{
cout<<"a + b = "<<a + b<<endl;
return a + b;
}
//返回a - b
int sub(int a, int b)
{
cout<<"a - b = "<<a - b<<endl;
return a - b;
}
//定义返回函数指针的函数
PF ff(int c)
{
//由c判断执行加法还是减法,相应的将函数指针返回
if(c > 0)
return add;
else
return sub;
}
int main()
{
//间接调用
PF fun1= ff(1);//根据参数值判断返回哪个函数指针(add或者sub)
fun1(4, 5);
PF fun2 = ff(-1);
fun2(4, 5);
//直接调用
(*ff(0))(10, 10);
return 0;
}
结果无误, 哈哈继续努力!
相关文章推荐
- C语言中关于返回指针的函数和指向函数的指针
- 指向函数的指针和返回指针的函数
- 返回指向函数的指针
- C/C++ 子函数返回局部变量、指针 和改变指针指向
- 【C语言】14-返回指针的函数与指向函数的指针
- 【C语言】14-返回指针的函数与指向函数的指针
- 接受int形参(double,,等等)返回int(...);并且一个vector对象保存指向这些函数的指针;进行加减乘除;输出结果
- 函数返回指向函数的指针
- 十四、返回指针的函数与指向函数的指针
- 12-返回指针的函数&&指向函数的指针
- 【C语言】14-返回指针的函数与指向函数的指针
- C和指针之函数之在数组中找特定元素并返回指向该位置的指针
- C语言 返回指针的函数与指向函数的指针
- 声明一个指向含有10个元素的数组的指针,其中每个元素是一个函数指针,该函数的返回值是int,参数是int*,正确的是()
- 【c语言】编写一个函数new,对n个字符开辟连续的存储空间,此函数应返回一个指针(地址),指向字符串开始的空间
- 习题 8.19(1) 编写一个函数new,对n个字符开辟连续的存储空间,此函数应返回一个指针(地址),指向字符串开始的空间。new(n)表示分配n个字节的内存空间。
- C++ 返回指向数组指针的函数
- 14返回指针的函数与指向函数的指针
- 返回指向函数的指针
- 【C语言】返回指针的函数与指向函数的指针