sqrt()和pow()函数math.h库中C没有为定义integer的类型,但他们不抛出任何错误,但对于正常工作integer参数,如何工作的呢?
在期望浮点值的上下文中使用时,整数会隐式转换为浮点值.这正是您的场景中发生的事情,其中函数接受浮点参数.
所以,当你写:
#include <math.h>
....
int i;
double d = sqrt(i);
Run Code Online (Sandbox Code Playgroud)
使用隐式类型转换的规则将整数i转换为a double,并将其double传递给sqrt().