c语言高手们帮忙

来源:百度知道 编辑:UC知道 时间:2024/05/23 17:56:47
函数调用的时候,实参和形参的类型应该匹配,但如果不匹配以什么为准呀?
主函数定义的,还是调用的函数所定义的?
谢谢

通常是调用的函数
会隐含转换类型

虚函数除外

不匹配时候会出现转换,有显示转换和隐式转换
显示转换就是精度高的向精度低的转换,比如(float---->int)这种转换是要自己定义的,

隐式转换则是精度低的向精度高的转换,比如(int------>float)这种转换是可以直接做的

c 中无虚函数。

依主函数定义为准

C语言中的参数传递问题,往往是以主函数为准,如果是由低级向高级传递,则会自动转换,不会有问题,但是如果是由高级向低级转换,则会报错.比如主调函数中是double,而函数的形参是float型,那么编译的时候会报错,即使编译通过了也不能执行.这样的情况下,你就必须用强制转换来进行

函数调用的时候,实参和形参的类型应该匹配,但如果不匹配以赋值转换规则进行类型转换为准.例如若FLOAT型实参值A为3.5,而形参X为INT型,则将实数3.5转换成整数3,然后送到形参B.但此时应将被调函数的前面或在调用前对被调用函数应作函数声明.函数声明格式如下:
(函数变量名)(实参表)
函数调用的时候,实参和形参的类型是由调用的函数所定义的