1. 什么是函数指针?
[注]如果如此定义 float (*f)(int, int), 并试图使用该指针指向函数原型为 float Fun(float a, float b) 的函数Fun, 编译器会检查出这种类型不匹配的错误.
[注]在定义函数指针时可以省略圆括号中的参数列表, 但如此做是不明智的: 因为这样编译器就不会帮助我们检查参数类型不匹配的错误. 如果我们省略形参类型的声明, 也就意味着告诉编译器不需要其帮助我们检查参数类型不匹配的错误. 我们不建议使用这种方式定义函数指针: float (*f)().
2. 初学者定义函数指针时容易犯的错误:
3. 函数指针有什么用?
我们先以两数交换的程序为例, 简要了解函数指针的使用方法.
#include<stdio.h>
void Swap(short *x, short *y);
int main()
{
short a = 8, b = 12;
/* 定义函数指针 */
void (*f)(short *x, short *y);
printf("a = %hd, b = %hd.\n"