我必须显示程序的输出并解释它的作用。 函数的参数在哪里?
int main(void)
{
printf("Answer: %d\n", f1(f2));
return 0;
}
int f1(int (*f)(int))
{
int n = 0;
while ((*f)(n))
n++;
return n;
}
int f2(int i)
{
return i * i + i - 12;
}
答案 0 :(得分:1)
首先,您错过了该功能的声明。如果我们认为它们应该在那里,那么你将函数指针传递给函数f1
,然后你在while
循环的条件下执行它,如果它是非零的(resukt) f2
)然后条件变为真,n++
被执行或n
增加1
。
首先(f2
返回的值)-12
然后-10
然后-6
然后0
。因此,您的函数将返回3
。所以输出是
Answer: 3
注意:int (*f)(int)
表示f
是指向函数的指针,该函数返回int
并以int
作为参数。