C - 注意:预期'float *'但参数的类型为 'int *'



>我有一个警告注意:预期的"float *",但参数的类型为"int *"我的程序是

#include <stdio.h> //header file
void foo(float *);
int main()
{
    int i = 10, *p = &i;
    foo(&i);
}
void foo(float *p)
{
    printf("%fn", *p);
}

输出为 0.000 000为什么?

foo 函数需要类型为 int *(指向整数的指针)的参数,而不是 float * 类型(指向浮点数的指针)的参数。将数据类型float更改为int,并替换"%d"而不是"%f"以消除警告。

正如警告所说,您正在传递指向int的指针foo(),但foo()期望指向float的指针。所以,或者你声明ifloat,或者将foo()的参数更改为int*

相关内容

最新更新