gpt4 book ai didi

c - return函数如何返回一个值给If语句?

转载 作者:太空宇宙 更新时间:2023-11-04 06:27:36 24 4
gpt4 key购买 nike

值 1 如何传递给 main 函数中的 if 语句以及返回函数如何与其中的递归调用一起工作?

#include <stdio.h>
#include <stdlib.h>
int identicalTrees(struct node* a, struct node* b)
{
if (a==NULL && b==NULL)
return 1;

if (a!=NULL && b!=NULL)
{
return
(
a->data == b->data &&
identicalTrees(a->left, b->left) &&
identicalTrees(a->right, b->right)
);
}

return 0;
}




int main()
{
if(identicalTrees(root1, root2))
printf("Both tree are identical.");
else
printf("Trees are not identical.");

getchar();
return 0;
}

最佳答案

当调用已声明返回值的方法时,每次调用该方法时都会在堆栈上为返回值保留空间。 Return 语句将值放在堆栈上的该位置并退出返回调用该方法的代码的方法。调用该方法的代码检索由 Return 语句放入堆栈的值,并在 If 语句中使用它。

在递归中,对方法的每次连续调用都会将其自己的本地堆栈变量空间添加到堆栈顶部。当一个方法执行时,当前栈顶指针递减以“释放”该方法的栈空间。

参见 http://en.wikipedia.org/wiki/Stack-oriented_programming_languagehttp://en.wikipedia.org/wiki/Recursion_(computer_science)https://www.cs.umd.edu/class/fall2002/cmsc214/Tutorial/recursion2.html以获得更详细的解释。

关于c - return函数如何返回一个值给If语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24850144/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com