函数指针和指针函数用法和区别

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

函数指针和指针函数用法和区别

函数指针和指针函数(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语言编程中常用技术,其主要用途是实现动态调用函数和参数不确定的调用函数,从而提高程序的实用性和可维护性。

相关文档
最新文档