首页后端开发其他后端知识c语言自定义函数递归嵌套 c语言函数递归

c语言自定义函数递归嵌套 c语言函数递归

时间2023-04-17 02:54:01发布访客分类其他后端知识浏览1082
导读:为什么“C语言既可以嵌套定义又可以递归调用”是错的? C语言可以递归调用,但是(函数 不能嵌套定义。例如:int fact(int n { if (n == 0) return 1; else ret...

为什么“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;

    } ;

} ;

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

请问下c语言中函数的嵌套和递归怎么区别

在C/C++中,函数可以递归调用,也可以嵌套调用。

递归调用是指自己调用自己,而嵌套调用是指两个或多个函数间相交叉互调用。递归调用时,函数自身必须更改返回(结束)条件,否则就会进入死循环,而嵌套调用就没有这样的要求,与普通函数一样,完成指定操作后正常返回即可。

C语言的函数嵌套调用与函数递归调用有什么区别

区别:

函数的嵌套调用是指在一个C语言函数里面在执行另一个函数,这样通常称为函数的嵌套调用。而函数的递归调用,一般指的是这个C语言函数调用自己本身的函数也就是说调用函数的函数体是一样的,这样称为递归调用。

扩展资料:

函数的分类

从用户使用的角度看,函数有两种:

标准函数,即库函数。这是由系统提供的。用户自定义的函数。可以解决用户的专门需要。

从函数的形式看,函数分两类:

无参函数。printstar和print_message就是无参函数。在调用无参函数时,主调函数并不将数据传送给被调用函数,一般用来执行指定的一组操作。

有参函数。在调用函数时,在主调函数和被调用函数之间有数据传递。也就是说,主调函数可以将数据传递给被调用函数使用,被调用函数中的数据也可以带回来供主调函数使用。

参考资料来源:百度百科—main函数

c语言中的函数可以嵌套调用也可以递归调用,这句话对吗?

这句话是不对的。

嵌套是两种结构间的关系,而不是函数间的关系。递归是一个函数调用自身,可以看作是一个函数调用另一个函数中的较特别的例子。

函数嵌套与递归调用的区别函数嵌套是语言特性,递归调用是逻辑思想。

扩展资料:

函数嵌套函数嵌套允许在一个函数中调用另外一个函数。

递归调用而递归是一种解决方案,一种思想,将一个大工作分为逐渐减小的小工作。递归是一种思想,只不过在程序中,就是依靠函数嵌套这个特性来实现了。递归最明显的特点就是,自己调用自己。

函数嵌套就是函数调用函数,是普遍的,递归就是函数调用自身,使函数嵌套的一个特例。嵌套调用就是某个函数调用另外一个函数,递归调用是一个函数直接或间接的调用自己。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: c语言自定义函数递归嵌套 c语言函数递归
本文地址: https://pptw.com/jishu/3440.html
php链接数据库简单代码 php如何链接数据库 php数据库查找命令 php数据库查询系统

游客 回复需填写必要信息