指向函数的指针

时间:2011-03-01 09:01:38

标签: c

int *fun(void)int fun*(void)之间有什么区别?

3 个答案:

答案 0 :(得分:6)

前者开始定义(或声明,取决于下一步)一个返回指针int的函数。后者是语法错误。两者都不是函数指针。

函数指针需要如下所示:

int (*fun)(void);

这声明了一个指向返回int的函数的指针。

答案 1 :(得分:3)

int* fun(void);

fun不接受任何参数但返回指向整数的指针。我认为,第二个在语法上是错误的。如果您正在尝试使用函数指针,那么它应该是 -

int (*fun)(void)= NULL;

现在,fun是指向不带参数但返回整数的函数的指针。

答案 2 :(得分:0)

int * func(void)

一般来说,有效声明有3个部分,最后是;分号。

第1部分) 参数

虚无意义 - 没有争论 (论证可能很复杂,数量也各不相同)

第2部分) 返回类型(可以是用户类型或内置)

int * mean - (返回类型)是指向int

的指针

第3部分) 函数的名称(可以是任何东西,应该是它将要执行的操作的逻辑。

func mean - 函数名称

在第二个syntex中。 我们在第2部分和第3部分之间有*。

这是不允许和有意义的。 要么你可以添加*到void或int。

  • int * func(void)

  • int func(void *)

或作为已回答的函数指针。

(* pf)();

(* pf)(无效)