函数指针和指针函数用法和区别
    函数指针和指针函数(pointerfunction)是C语言编程中常用的技术,在一些高级编程技术(例如设计模式)中也有广泛的应用。它们的概念比较复杂,有时候会让初学者有点晕头,但是一旦理解了它们的用法和区别,大家就会发现它们对于结构化编程的设计有着重要的意义。本文尝试以最简单的方式阐述函数指针和指针函数的用法和区别。
    首先,在我们讨论函数指针和指针函数之前,我们最好以一个函数为例来介绍它们:
    void foo (int a, int b)
    {
    int c = a + b;
    printf(%d
    c);
    }
    foo函数接收两个整数参数a和b,并将它们相加后输出结果。
指针函数的作用    接下来我们来看看函数指针是什么:函数指针(function pointer)是一种指向函数的指针,它可以把函数的地址保存在指针变量中,这样你就可以通过指针调用函数。句话说,它实际上指向一个函数,通过调用它,你可以调用函数。
    函数指针的声明可以形式如下:
    void (*fooPtr)(int, int);
    其中,fooPtr是函数指针变量,函数指针变量fooPtr可以指向函数foo()。函数指针可以赋值,例如:
    fooPtr=foo;
    此外,你可以使用函数指针调用函数,例如:
    (*fooPtr)(1,2);
    这里,可以说fooPtr指向函数foo(),并且调用函数foo()。
    现在,让我们来看看指针函数是什么:指针函数(pointer function)是一种特殊的函数,其返回值类型是指针,即它是一种不接受参数并返回指针的函数。
    指针函数的声明可以形式如下:
    int *fooPtr(void);
    其中,fooPtr()是指针函数,它返回一个int类型的指针。指针函数可以调用,例如:
    int *p = fooPtr();
    这里,fooPtr()调用了指针函数,并将返回的指针赋值给*p。
    了解了函数指针和指针函数的基本概念及其用法后,那么函数指针和指针函数有什么区别?
    函数指针和指针函数的主要区别在于,函数指针可以指向任何函数,而指针函数必须返回指针类型的变量,并且不接受任何参数。
    函数指针的主要优势在于,它可以帮助我们动态地(即在运行时)调用函数,而不用把函数的调用写死在源代码中,从而提高代码的实用性和可维护性。
    而指针函数主要用于在参数不确定的前提下调用函数,它可以帮助我们解决程序中复杂的操作过程,从而提高程序的可读性。
    综上所述,函数指针和指针函数都是C语言编程中常用技术,其主要用途是实现动态调用函数和参数不确定的调用函数,从而提高程序的实用性和可维护性。