int fun1(int int);
int fun (float float);
为什么主函数与后者匹配的实参赋值给后者的形参后,最后计算的结果是int型不是float型??如7.5/6.5之后的结果是1而不是个小数呢??
基础问题。。。c语言函数重载的参数类型不同问题
答案:5 悬赏:20 手机版
解决时间 2021-04-07 09:24
- 提问者网友:风月客
- 2021-04-06 13:51
最佳答案
- 五星知识达人网友:夜风逐马
- 2021-04-06 15:14
两个的函数返回类型都是int,最后的返回类型当然都是int
如
int fun(float, float)
改成
float fun(float, float), 函数返回值就是float类型
如
int fun(float, float)
改成
float fun(float, float), 函数返回值就是float类型
全部回答
- 1楼网友:廢物販賣機
- 2021-04-06 19:45
这个是由你自己定的,你想让它返回float型把它改为 float fun(float float)就行了,这要看你函数体里面最后计算的结果是什么类型,函数重载只是要求同名函数的参数不同,对于返回值不做要求
- 2楼网友:梦中风几里
- 2021-04-06 18:14
compare函数中的p和q实际上都是int类型的指针,所以sizeof(p)返回的就是int*类型的宽度。而sizeof(p[0])返回的刚是int类型的宽度。
- 3楼网友:野慌
- 2021-04-06 16:46
二者的函数参数不同
你定义的printf是无参函数
系统的printf的参数个数是不定的
同样名字,不同参数(包括个数、类型)的函数是不同的
- 4楼网友:笑迎怀羞
- 2021-04-06 15:59
你的这种重载方式不对,如果你仔细去看看重载的定义,你就会发现只是类型不同的函数参数重载是不好实现的,编译器不能够识别你调用的是哪一个函数。函数的重载可以传递的参数个数不一致,函数返回值不一致,但是对于有相同参数,参数类型不同这种重载一般是不能实现的。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯