关于c语言函数指针的问题
有这么一个函数void(*fun)(int),我不太明白他的返回值是什么类型,是空类型吗?还有他的形参是什么?大家帮我解答下啊,谢谢了??...
有这么一个函数void(*fun)(int),我不太明白他的返回值是什么类型,是空类型吗?还有他的形参是什么?大家帮我解答下啊,谢谢了??
展开
2012-11-09
展开全部
1.fun是一个函数指针,即fun还不是一个函数,只是一个可以指向函数的指针,利用这个指针可以调用函数,这个函数的返回值为空,带有一个int型参数.例如:
void f(int x)
{
printf("%d",x);
}
void main()
{
void(*fun)(int);
fun=f; //fun指向函数f
fun(10);//通过fun调用函数f
}
2.void *fun(int),这个fun是一个指针函数,即函数返回值不是函数值本身,而是函数值的地址,也就是说,fun是函数值为指针的函数;但这个定义没有意义,因为函数类型为void,即不必使用函数值
void f(int x)
{
printf("%d",x);
}
void main()
{
void(*fun)(int);
fun=f; //fun指向函数f
fun(10);//通过fun调用函数f
}
2.void *fun(int),这个fun是一个指针函数,即函数返回值不是函数值本身,而是函数值的地址,也就是说,fun是函数值为指针的函数;但这个定义没有意义,因为函数类型为void,即不必使用函数值
展开全部
返回值类型是 void,即没有返回值。
另外,这个 void (*fun)(int) 不是函数,而是函数指针。
另外,这个 void (*fun)(int) 不是函数,而是函数指针。
追问
他的返回值是什么和入口参数是什么呀?
追答
入口参数是 int 类型。
对于函数指针的定义,可以分为三个部分来看:
1、左边,是返回值类型,即 void
2、中间,也是一对括号,其内的东西是 指针变量的声明本身,即 *fun,函数指针变量是fun
3、右边,是一对括号,其内的东西是入口参数,即 (int)
又如:QString * (*pf) (char, int);
返回值是 QString *
函数指针变量是 pf
参数有两个,char 和 int
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
比如有个函数
void f(int a); // 无返回值
fun p = f; // 给函数指针 p 赋值 f ,形参当然就是int a了
p(n); // 相当于调用了 f(n);
void f(int a); // 无返回值
fun p = f; // 给函数指针 p 赋值 f ,形参当然就是int a了
p(n); // 相当于调用了 f(n);
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
前面是void,就没有返回值咯。
追问
如果是void *fun(int)返回值是任何类型的吧?
追答
没有返回值呀!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
返回值是 void类型
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询