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

Why can't I use integers in the pow() function?

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

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

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

SquaredIV = pow(&InputVar, 2);

如果需要,我可以 post 更多行代码,但现在我将保留它。请帮我解决这个问题。谢谢

在 c 中 &address-of 运算符,它将产生 inputvar 的地址 pow 将无法用它做任何有用的事情..

代码应该在开头附近。

#include <math.h>

然后在文件中

SquaredIV = pow(InputVar, 2);

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

整数平方的常用(也是最有效的)方法是将其乘以自身。

SquaredIV = InputVar*InputVar;

Can you use integer as arguments to pow function?`

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

你的情况:

SquaredIV = pow(&InputVar, 2);

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