为什么我不能在pow()函数中使用整数?

时间:2015-01-03 20:41:09

标签: c function integer int pow

只是一个免责声明,我是这些东西的新手。我只是真正进入了C,并进入了一般的编程,所以请注意,谢谢。

你好,Stack Overflow。我这里有一段代码,无论出于何种原因,我都不想正常工作。 pow()函数似乎不喜欢我输入要使用的整数的方式,我的IDE告诉我参数1的参数类型(包含整数的参数)是不兼容的。难道我做错了什么?这是一个初学者的错误,我只是遗漏了什么?你能在pow()函数中使用整数作为参数吗?

这是我正在使用的代码行。另外,请注意我尝试制作一个取整数并将其平方的程序,通过printf("text")作为一个非常基本的项目与用户进行通信。

SquaredIV = pow(&InputVar, 2);

如果需要,我可以发布更多代码行,但是现在我要离开这个。请帮我解决这个问题。感谢。

2 个答案:

答案 0 :(得分:3)

  

你可以使用整数作为pow函数的参数吗?`

是的,你可以。整数值隐式转换为右类型的浮点值。

在你的情况下:

SquaredIV = pow(&InputVar, 2);

问题是&InputVar不是整数类型,而是指针类型为&一元运算符产生指向操作数对象的指针。

答案 1 :(得分:0)

在c &中,address-of操作符会产生inputvar的地址。此时,pow将无法执行任何有用的操作。

代码应该在开头附近。

#include <math.h>

然后在文件中

SquaredIV = pow(InputVar, 2);

实际上并没有使用整数作为pow的输入,将会发生的事情是编译器会在math.h中找到pow的定义并知道它需要将int转换为double (双精度浮点)并将其发送给pow。 Pow会将结果作为double返回,并且compilwe会知道将其转换为SquaredIV类型的任何类型。

平方整数的通常(最有效)方法是将其自身相乘。

SquaredIV = InputVar*InputVar;