注意:预期'浮动*'但参数的类型为' int *'

时间:2017-01-28 11:08:12

标签: c types floating-point int

我有一个警告 注意:预期'浮动*'但参数的类型为' 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 为什么呢?

2 个答案:

答案 0 :(得分:1)

正如警告所说,您向foo()传递指向int的指针,但foo()需要指向float的指针。因此,或者您将i声明为float,或将foo()的参数更改为int*

答案 1 :(得分:0)

foo函数需要返回int *类型而不是类型float *。将数据类型float更改为int并替换"%d"而不是"%f"以删除警告。