若函数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
在 C 语言中,函数名(如 fun)本身就是一个指向函数的指针,所以你可以直接将它赋值给函数指针 P,即 P = fun;。你不需要使用 & 运算符来获取函数的地址。
fun
P
P = fun;
&
因此,虽然 P = &fun; 在大多数 C 编译器中可能可以正常工作,但这并不是标准的 C 语言用法。在标准的 C 语言中,& 运算符不能应用于函数名。所以,最好的做法是直接使用 P = fun;。
P = &fun;
指针p指向函数fun的赋值语句为 p=fun 也是好理解的,因为我们知道函数名本身就是函数入口地址,所以不必加&之类的
这个题选啥呢,没懂
为啥d不对
1751977055 回复 985872599: 函数名不是一个地址。
Mr C 回复 985872599: 有没有可能&fun返回的是一个返回类型为void的函数指针呢?
B
用户登录可进行刷题及查看答案
登录后提交答案