有以下程序: #include int add(int a,int b){return(a+b);} main() { int k,(*f)(),13.=5,b=10; f:add; } 则以下

admin2019-01-11  24

问题 有以下程序:
    #include
    int add(int a,int b){return(a+b);}
    main()  
    {  int k,(*f)(),13.=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选项。
转载请注明原文地址:https://kaotiyun.com/show/b7xp777K
0

随机试题
最新回复(0)