选择题
23.
有以下程序:
#include<stdio.h>
int add(int a,int b){return(a+b);}
main()
{int k,(*f)(),a=5,b=10;
f=add;
…
}
则以下函数调用语句错误的是______。
A、
k=f(a,b);
B、
k=add(a,b);
C、
k=(*f)(a,b);
D、
k=*f(a,b)
【正确答案】
D
【答案解析】
()的优先级高于*,因为(*f)()定义函数指针f,f为指向函数的指针,而f=add,即将函数add()的首地址赋给指针f,所以调用函数add()可以写为f(),其返回值是整型,不是指针类型,不能用*取指针指向的内存单元的数据,故k=*f(a,b)的调用方式错误。故答案为选项D。
提交答案
关闭