>我有一个警告注意:预期的"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
的指针。所以,或者你声明i
为float
,或者将foo()
的参数更改为int*
。