永发信息网

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

答案:3  悬赏:40  手机版
解决时间 2021-04-29 14:53
有以下程序 int add(int a,int b) {return(a+b)} main() { int k,(*f)(),a=5,b=10; f=add; ... }
最佳答案
这个题是考察 函数指针的应用方式
使用函数的时候 如果是函数名的调用,编译器会自动转化成函数指针去执行函数。
所以 调用函数就有了两种方式
第一种 就是 答案A和B
这里直接调用函数名 (系统会转成函数指针)
第二种 就是答案D
直接调用函数函数指针

答案C错误是因为优先级这样就成了k = 函数返回值得指针了~ 而k是一个整形不能接受指针值~

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

补充:
int (*f)() //定义了一个指针变量f,他是指向一个返回值是整型变量的函数。叫做指向函数的指针变量。
int add(int a,int b) {return (a+b);} // 定义了一个函数add,函数有两个整型的参数。返回值类型也是整型。功能是计算两个整数相加。大括号是函数体,就像main函数后面的大括号一样。return是返回语句,是函数返回到调用它的函数。后面的(a+b)是返回的值,即两个参数的相加结果。
k=f(a,b) // 是一个赋值语句和函数调用语句。用指针形式调用函数,将结果赋给k. 前提f要指向函数add,要有f=&add;
k=(*f)(a,b) // 是一个赋值语句和函数调用语句。用指针形式调用函数,将结果赋给k.前提f要指向函数add,要有f=add;
全部回答
A、B效果一样,都是值运算,D是函数地址运算,运算结果保存在该函数的地址,C想与A做相同的运算,所以一定是在A、C里面选择,但是C语法错误
c在执行的时候是*(f(a,b)),题目里面根本就没有f()函数,
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
新疆财经大学三本好吗
我忘了QQ华夏的角色密码怎么半?我搞了那些的
鄄城县人民医院-门诊大楼怎么去啊,有知道地
想玩DOTA
谁帮忙推荐吉林一家比较好点的美容美发学校
我做的对么?
如果你很爱你的男朋友,可你却做了对不起他的
sql server 2000 文本文档create table 编的
天龙八部2宝宝问题
如何正明她是否爱你
番禺石基邮政编码是多少
身为教师,()是师道之前提,()是立教之根本
老师拖课是正常现象吗
PDF文件类型转换成wrod 文档格式!
银类首饰真的可以祛风湿吗?
推荐资讯
网恋现实吗?能走到一起吗?
地下城做“赤光天脊剑”的任务在谁那接、
为什么好鞋要有两双鞋带?
蓝色毛衣,咖啡色长靴,配颜色什么袜子
今天热火和老鹰的季前赛怎么不播?
腾讯游戏 爆破怎么变成全图刀
中国在朝核问题上扮演着什么角色?有什么重要
怎么让脑袋鼓一点.有办法吗
请问:这世界上最厉害的动物是什么?
肯德基配送费多少,肯德基网上订餐达到多少钱
冬枣太阳晒是不是大红枣
好运炖菜村在什么地方啊,我要过去处理事情
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?