return的返回值不是必须为函数的类型吗?为什么不选c呀!?

img

img

sjxjskwefuhrnedcfukewjhfncpwoeuhfcbndjhsujdihesfcikiochnscesiohnceo

谁告诉你必须返回函数的类型的
值类型直接可以隐式互相转换的
你不要把结构体或者数组什么的奇怪的东西返回去就不报错
至于你自己写的函数报错,不是因为return的格式,而是因为main函数必须返回int型,而你乱改double

函数的返回值是以函数定义的返回值为准的
比如这里的double

img

main函数比较特殊 只能是int或者void 这是死规则,我们的代码入口
而我们这里说的函数,一般是除了main函数以为的其他我们自定义的函数。
还有这里涉及一个点,x,和y是int类型,其实可以隐式转换为double类型的 比如你定义一个double a =1+1;其实就已经隐式转换了

但是整型是可以自动转换为double类型的,所以没问题啊

img

题目中的原本是x+y,即int类型的返回值,但由于函数定义时候,规定返回值类型是double,所以int类型会自动转换为double类型。你写的程序的是无法自动转换的,因此是会编译报错的。当借助强制类型转换的话,也不会报错。