我有一个警告 注意:预期'浮动*'但参数的类型为' int *' 我的节目是
#include <stdio.h> //header file
void foo(float *);
int main()
{
int i = 10, *p = &i;
foo(&i);
}
void foo(float *p)
{
printf("%f\n", *p);
}
产出为0.000 000 为什么呢?
答案 0 :(得分:1)
正如警告所说,您向foo()
传递指向int
的指针,但foo()
需要指向float
的指针。因此,或者您将i
声明为float
,或将foo()
的参数更改为int*
。
答案 1 :(得分:0)
foo函数需要返回int *
类型而不是类型float *
。将数据类型float
更改为int
并替换"%d"
而不是"%f"
以删除警告。