您当前的位置:首页 > 时尚 > 内容

c语言:指针函数跟函数指针的区别是什么 c语言:指针函数跟函数指针的区别在哪

C语言:指针函数跟函数指针的区别?

指针函数和函数指针都是指针类型,主要有以下区别:

1.指针函数(pointer to function):指针函数是返回值为指针类型的函数,它本质上是一个函数,只是函数的返回值是指针类型。例如:

int* func(); // 声明一个指针函数,返回值为int类型的指针 int* p = func(); // 调用指针函数func(),将返回值赋给指针p

2.函数指针(function pointer):函数指针是指向函数的指针,它本质上是一个指针变量,指向一个函数的地址。例如:

int add(int a, int b) { return a + b; } // 定义一个函数add() int (*p)(int, int) = &add; // 声明一个函数指针p,指向add()函数的地址 int result = (*p)(2, 3); // 调用函数指针p,计算add(2, 3)的结果

3.总结: 指针函数是一个函数,它的返回值是指针类型;而函数指针是一个指向函数的指针,它保存了函数的地址,可以通过指针调用函数。

延伸阅读

函数指针的典型用法?

函数指针是指向函数的指针。可以使用它来实现函数指针数组或函数指针表,以实现动态函数调用,也可以实现回调函数。

函数指针典型用法:

1. 回调函数:将函数的地址作为参数传递给另一个函数,当函数完成执行后,可以调用回调函数来使用结果。

2. 函数指针数组:可以使用函数指针数组来实现函数的动态调用,根据不同的输入变量调用不同的函数。

3. 函数对象:可以使用函数指针作为对象的成员,在需要时调用该函数来实现特定功能。

如何调用指针函数?

如果存在函数指针p,以*p取函数指针的值,然后加上参数列表调用即可。即ret=(*p)(arg_list)

;如,p为int(*)(int)类型的函数指针,那么inta=(*p)(10);这样就是一次典型的函数指针调用。

主函数如何调用指针函数?

主函数调用指针函数的步骤:

1、定义一个函数指针;

2、将函数指针指向一个函数;

3、调用这个函数指针所指向的函数。

函数指针”本身首先应是指针变量,只不过该指针变量指向函数。这正如用指针变量可指向整型变量、字符型、数组一样,这里是指向函数。

函数指针和指针函数有啥区别?

  

1、指针函数是指带指针的函数,即本质是一个函数。

函数返回类型是某一类型的指针   类型标识符 *函数名(参数表)   int *f(x,y);      首先它是一个函数,只不过这个函数的返回值是一个地址值。函数返回值必须用同类型的指针变量来接受,也就是说,指针函数一定有函数返回值,而且,在主调函数中,函数返回值必须赋给同类型的指针变量。  表示:   float *fun();   float *p;   p = fun(a);   注意指针函数与函数指针表示方法的不同,千万不要混淆。最简单的辨别方式就是看函数名前面的指针*号有没有被括号()包含,如果被包含就是函数指针,反之则是指针函数。  

2、函数指针是指向函数的指针变量,即本质是一个指针变量。  int (*f) (int x); /* 声明一个函数指针 */   f=func; /* 将func函数的首地址赋给指针f */      指向函数的指针包含了函数的地址,可以通过它来调用函数。声明格式如下:   类型说明符 (*函数名)(参数)   其实这里不能称为函数名,应该叫做指针的变量名。这个特殊的指针指向一个返回整型值的函数。指针的声明笔削和它指向函数的声明保持一致。  指针名和指针运算符外面的括号改变了默认的运算符优先级。如果没有圆括号,就变成了一个返回整型指针的函数的原型声明。


声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,谢谢。

上一篇: 为人大须学问 太宗谓房玄龄曰为人大须学问

下一篇: u950,介绍u950手机的性能和特点



推荐阅读

网站内容来自网络,如有侵权请联系我们,立即删除! | 软文发布 | 粤ICP备2021106084号