
sqrt这个函数在C语言和C++里面有什么区别?求大神,给追加
我是个编程新手,我在写程序的时候出现了这个函数错误提示,但是我没理解这个错误是什么意思,麻烦大神告知,这个num是个int变量,从右边可以看到这是个CPP文件,但是如果我...
我是个编程新手,我在写程序的时候出现了这个函数错误提示
,但是我没理解这个错误是什么意思,麻烦大神告知,这个num是个int变量,从右边可以看到这是个CPP文件,但是如果我改成C文件,这个错误就没了,所以我想问顺便问一下是因为sqrt这个函数在C语言和C++里面不同才导致了这个问题吗?那到底区别(不同)在哪? 展开
,但是我没理解这个错误是什么意思,麻烦大神告知,这个num是个int变量,从右边可以看到这是个CPP文件,但是如果我改成C文件,这个错误就没了,所以我想问顺便问一下是因为sqrt这个函数在C语言和C++里面不同才导致了这个问题吗?那到底区别(不同)在哪? 展开
1个回答
推荐于2016-09-26
展开全部
c++的类型检查要严格一些, sqrt只接受浮点数类型的参数, 把(int)num改为(double)num之类就可以了
c是弱类型语言, 把int传入float/double类型的参数时会作隐式类型转换; 这里自己标上(int)表示你要求这个num转换为int类型而不是float等, 于是c++认定这是个类型错误
c是弱类型语言, 把int传入float/double类型的参数时会作隐式类型转换; 这里自己标上(int)表示你要求这个num转换为int类型而不是float等, 于是c++认定这是个类型错误
更多追问追答
追问
那就是说C++的sqrt只接受浮点数类型咯?那有办法让它接受int类型吗
追答
把整数传进去之前强制类型转换一下就可以 → sqrt((float)num)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询