首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

函数参数不能是char 和float吗

2012-12-31 
【求助】函数参数不能是char 和float吗?Since an argument of a function call is an expression, type conv

【求助】函数参数不能是char 和float吗?
Since an argument of a function call is an expression, type conversion also 
takes place when arguments are passed to functions. In the absence of a 
function prototype, char and short become int, and float becomes double. 
This is why we have declared function arguments to be int and double even 
when the function is called with char and float.

这段话如何理解?
我的理解是:
1、函数的参数是作为一个表达式传递的。
2、表达式的计算涉及类型转换。
3、根据1,2,函数传参也涉及类型转换。
4、如果没有声明函数原型,char 和 short就会转成int ,而float转成double.
5、就算我们传的是char和float,我们也将参数声明为int 和double
6、4是5的原因。

可是:
函数参数不能是char 和float吗?
这段话有问题,还是我理解有问题呢?

[解决办法]
“函数参数不能是char 和float吗?”
明显是你的理解有问题,参数可以为char和float类型的,这都是毫无疑问的。
[解决办法]
这样理解才对:
一旦函数调用的参数是表达式,那么当参数传递给函数的时候会进行类型转换,在缺少函数原型的状况下,char和short会转换为int类型,而float会变为double类型。这就是为什么我们已经声明函数的参数为int和double类型后,仍然可以用char和float的方式来调用的缘故。

引用:
引用:“函数参数不能是char 和float吗?”
明显是你的理解有问题,参数可以为char和float类型的,这都是毫无疑问的。
那我上面哪一部分理解出错了呢?

热点排行