C 函数和指针
我必须展示程序的输出并解释它的功能。 函数的参数在哪里C 函数和指针,c,C,我必须展示程序的输出并解释它的功能。 函数的参数在哪里 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; } 首先,您错过了函数的声明。如果我们认为
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;
}
首先,您错过了函数的声明。如果我们认为它们在它应该在的地方,那么您将传递一个函数指针到函数
f1
,然后在循环的条件下执行它,如果结果是非零(f2
的结果)然后该条件变为真,执行n++
,或者n
增加1
它以(f2
返回的值)-12
开始,然后-10
然后-6
然后0
开始。因此,函数将返回3
。所以输出是
Answer: 3
注:
int(*f)(int)
表示f
是指向函数的指针,该函数返回int
,并将int
作为参数