高端购物网站建设,建立网站的,最好的优化公司排名,网站建设的基本目标欢迎访问我的新博客#xff1a;http://www.milkcu.com/blog/ 原文地址#xff1a;http://www.milkcu.com/blog/archives/1368947400.html 基本概念 在C语言中#xff0c;函数本身不是变量#xff0c;但可以定义指向函数的指针。这种类型的指针可以被赋值、存放在数组中、传… 欢迎访问我的新博客http://www.milkcu.com/blog/ 原文地址http://www.milkcu.com/blog/archives/1368947400.html 基本概念 在C语言中函数本身不是变量但可以定义指向函数的指针。这种类型的指针可以被赋值、存放在数组中、传递给函数以及作为函数的返回值等等。 函数作为参数传递给函数时因为它们是函数前面不需要加取地址运算符。同样的原因数组名前面也不需要运算符。 代码实现 测试代码如下 # include stdio.h
int compare(int a, int b);
void hello(int a, int b, int (* compare)(int , int));
int main(void)
{int a, b;a 3;b 3;hello(a, b, * compare);
}
int compare(int a, int b)
{return a b;
}
void hello(int a, int b, int (* compare)(int, int))
{if((* compare)(a, b)) {printf(Hello.\n);}
} 分析 hello函数的第三个参数声明如下 int (* compare)(int , int) 它表明compare是一个指向函数的指针该函数有两个int类型的参数其返回值类型为int。 在下列语句中 if((* compare)(a, b)) compare的使用与其声明是一致的同时要注意运算符的优先级。 参考资料 《C程序设计语言》Kernighan著徐宝文译第二版Page118全文完 转载于:https://www.cnblogs.com/milkcu/archive/2013/05/19/3808891.html