功能和指针

时间:2018-01-21 16:50:25

标签: 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;
}

1 个答案:

答案 0 :(得分:1)

首先,您错过了该功能的声明。如果我们认为它们应该在那里,那么你将函数指针传递给函数f1,然后你在while循环的条件下执行它,如果它是非零的(resukt) f2)然后条件变为真,n++被执行或n增加1

首先(f2返回的值)-12然后-10然后-6然后0。因此,您的函数将返回3。所以输出是

Answer: 3

注意:int (*f)(int)表示f是指向函数的指针,该函数返回int并以int作为参数。