c语言中函数能递归吗?

如题所述

C语言可以递归调用,但是(函数)不能嵌套定义。

例如:

int fact(int n)
{
    if (n == 0)
        return 1;
    else
        return n * fact(n - 1);
}

图中的递归调用是允许的。

而:

void foo()
{
    void bar()
    {
        // Some code
    }
}

这样在函数内定义函数是不允许的。


不过结构体是可以嵌套定义的,例如:

struct test {
    int a;
    struct demo {
        char b;
    };
};

这样在结构体内定义结构体,是可以的。

温馨提示:答案为网友推荐,仅供参考
相似回答