函数指针的2个例子
来源:互联网 发布:ubuntu启动输入法 编辑:程序博客网 时间:2024/05/29 11:56
第一个是我写的程序:
//函数指针的用法
//---------------------Include Files-------------
#include <stdio.h>
#include <math.h>
//-----------------end Include Files-------------
double BISECTION(double x0, double (*funcptr)(double));
double func(double x)
{
return ( x * x );
}
int main()
{
printf("%lf/n", BISECTION(2.0, func));//func前加取地址号&也可以
return 0;
}
double BISECTION(double x0, double (*funcptr)(double))
{
return (*funcptr)(x0);//return funcpstr(x0)也能执行
// return funcpstr(x0);//不加*号和括号出现外部链接的错误,但不应该出现错误啊??
//在VS2005中,不加*号和括号可以顺利执行
}
另一个是改写自参考书上的程序
//函数指针的用法
//---------------------Include Files-------------
#include
#include
//-----------------end Include Files-------------
typedef double (*funcptr) (double);
double func(double x)
{
return ( x * x );
}
int main()
{
double y = 2.0;
int x;
funcptr fp;
funcptr function[6] = {func, sin, cos, tan, log, exp};
printf("Enter x, which lies between 0 to 5: ");
scanf("%d", &x);
fp = function[x];
// fp = &func;
// fp = func;//这两种写法都可以调用func函数
printf("%lf/n", fp(2));
printf("%lf/n", (*fp)(2));
return 0;
}
//本程序改写自《C语言程序设计实用教程(Applied C: An Introduction and More)》,[美]
//Alice E. Fischer, David W. Eggert等著,裘岚、张晓芸等译,电子工业出版社,
//2001年9月第1版, 第622页程序
//"由于fp是一个指针,*fp表示fp所指向的函数,(*fp)(x)以实参x调用该函数,因此(*fp)(x)是
//合法并有意义的语句。C语法允许仅使用函数指针,而无需写星号和括号",摘自上书
- 函数指针的2个例子
- 二重指针的2个例子
- C/C++开发语言系列之21---C++函数指针的2个例子
- 《C和指针》的第一个例子
- Delphi 的接口(2) - 第一个例子
- Delphi 的接口(2) - 第一个例子
- 《4》Http的2个例子
- 【JavaScript】JavaScript的第2个例子
- 关于虚函数的应用(10个例子)
- 关于虚函数的应用(10个例子)
- Corba的第一个例子
- 委托的二个例子
- MDX的15个例子
- D3D的第一个例子
- 栈的第二个例子
- freemarker的第一个例子
- TC的第一个例子
- webservice的第一个例子
- word中使用超级链接
- 用c语言编写的汉明码
- 12.1
- MSSQL数据库的字段类型总结
- maven 的简单用法
- 函数指针的2个例子
- VMWare虚拟机网络连接断开的解决办法
- html转jsp页面变形
- Java打包成可执行文件步骤详解
- 好的电影网站
- MSSQL数据库导出和导入
- 在Java中实现浮点数的精确计算
- 触发器-MSSQL常用操作
- getParameter和getAttribute的区别