关于C++函数有一个疑问

img


这一个习题里,程序的形参和实参数据类型不一样,为什么答案选择B“程序没有错误,可以正常运行”呢?

因为调用函数的实参和形参中,参数个数要保持一致,但是类型是可以不一致的
如果可以隐式转化,那就是可以不一致,int和long是可以隐式转换的,具体看数据类型的隐式转换规则
对于你这里而言,程序可以运行
因为基本数据类型的转换以低精度到高精度,即保证精度不丢失。如:char 到 int,int 到 long

在调用函数时,编译器只知道形参类型,没法知道实参类型
会自动将实参转换为形参的类型