#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。
函数指针,有错的应该选D吧,其它几项没问题。
题目里函数指针的定义应该是:(*f)(int , int)
使用函数的时候 如果是函数名的调用,编译器会自动转化成函数指针去执行函数
对A和B是直接调用函数名(会转为函数指针),对C是直接调用函数函数指针,而D是优先级的错误,k是一个整型不能接受指针值