注册 登录
编程论坛 C语言论坛

又来问问题了,是函数指针的问题,已经昏了..

hanserisgood 发布于 2022-10-11 19:01, 1075 次点击
有这么个题:若函数fun的函数头为:int  fun(int i,int j)且函数指针变量P定义如下:int (*P)(int i,int j);则要使指针P指向函数fun的赋值语句是(   )
A. P=fun
B. P=*fun;
C. P=fun(i,j)
D. P=&fun
这题答案是B
问题:函数指针有啥用?指针不是一个保存地址的变量么,但是那个函数名fun不本来就是个地址么...但是P=*fun,这个*fun是什么意思啊?还是说答案给错啦?
3 回复
#2
不会游泳的虾2022-10-12 09:01
A D 是正确的,B 是错误的。
函数指针有两个用途:调用函数和做函数的参数

[此贴子已经被作者于2022-10-12 09:03编辑过]

#3
rjsp2022-10-12 09:35
A、B、D 都是正确的
#4
forever742022-10-15 17:09
关于第一个小问,函数指针有啥用。用途之一:
你写的函数要调用一个库函数,轻松愉快吧?
那么考虑一下,怎么能让一个库函数在需要的时候调用你写的函数呢?
思考一下就能知道,库函数是没有办法按照你写的函数名来调用你的函数的,因为库函数当年被编译成库的时候你还没写函数呢。
所以库函数调用的是函数指针,而不是你的函数。
在此之前你需要通过传参给函数指针赋值。
1