C语言中递归函数的返回值有问题

发布于 科技 2024-02-15
22个回答
  1. 匿名用户2024-01-25

    所谓函数返回值,就是函数在操作完成后反馈给调用它的父函数或系统的值,这个值可以是各种变量类型。

    下面是一个简单的示例:

    int add(int a,int b)

    return (a+b);

    int main()

    int res;

    res=add(3,4);

    printf("%d",res);

    return 0;

    在 main 函数中,调用子函数 add,传递参数 3 和 4,计算 add 得到值 7,将该值返回给调用它的 main 函数供 return 语句使用,在 main 中,返回值用于为 res赋值。

    函数的返回值可以理解为解决一个问题后得到的结论,把这个结论给别人,就像把它写在书里作为定理供别人使用一样。

  2. 匿名用户2024-01-24

    age 函数有这样一句话:

    c=age(n-1)+2;

    这是 age 函数使用它调用的 age 函数的返回值的地方,即递归。

    main 函数有这样一句话:

    printf("%d",age(5));

    下面是 main 函数用于调用的 age 函数的返回值。

    因此,函数返回给谁不是在定义时定义的,而是由谁调用的。

    简单地说,无论谁称呼它,他都会将价值回报给他想要的人。

    退出我们不考虑此特殊情况

  3. 匿名用户2024-01-23

    总共返回五次,前四次返回 age(n) 本身,最后一次返回 main() 函数。

  4. 匿名用户2024-01-22

    无论谁调用它,都会返回给它是谁,exit() 也不例外,并且 exit 返回类型是 void

  5. 匿名用户2024-01-21

    返回 main 函数 printf("%d",age(5));显示的值是其返回值。

  6. 匿名用户2024-01-20

    return 表示调整下的函数返回 main 函数继续执行,返回后可以附带一个返回值,该值由返回后的参数指定。

    return 通常是必需的,因为当调用函数时,计算结果通常由返回值带出。 如果函数执行不需要返回计算结果,并且经常需要返回状态码来指示函数是否顺利执行(-1和0是最常用的状态码),则主音函数可以通过返回值来判断调制函数的执行。

    退货报表背后具体是什么内容,这需要根据具体情况进行分析

    1)在返回类型为char的函数中,返回值应为char类型的值;

    2)在具有int返回类型的函数中,如果要停止函数的调用,最好将其设置为0;其余的取决于你的目的,只要它是 int 类型。

    3) 在返回类型为 struct 类型的函数中,返回应该是结构体的实例对象。

    简而言之,函数定义了它是什么类型的返回类型,对应类型的值应该在函数中的返回之后。

  7. 匿名用户2024-01-19

    return()表示从调整后的bai函数到主键函数的返回遵循zhi线的延续,返回值在返回dao时可以伴随返回值,返回值的类型由返回后的参数决定; return 语句可用于返回变量或指针中的值,也可以用于返回 0,指示返回值为空,并返回代数值,通常在子函数 zd 的末尾。

    return是指将程序流程从调制函数改为主函数,将表达式的值带回主键函数,从而实现函数值的返回,可以伴随一个返回值,返回后由参数指定。

  8. 匿名用户2024-01-18

    return()表示可以执行调制函数到主音函数的返回函数,返回值可以伴随返回值,返回值的类型由返回后的参数决定。 但是,当调用函数的类型为 void 时,不要编写 return() 语句。

  9. 匿名用户2024-01-17

    函数定义指定返回值类型后,return() 返回当前函数的返回值。

  10. 匿名用户2024-01-16

    调用包含 copy return() 的函数时,将返回括号中的值。

    例如:int add(int a, int b)...int x;

    x=add(2,3);x 等于 5;

    .功能等同于人类的行为,有些需要结果,有些则不需要。 例如,A让B拿到书,返回的结果是他想要的书,但是如果A让B打C一巴掌,那么B就做了,没有必要把结果还给A。

  11. 匿名用户2024-01-15

    return 返回一个值,表示返回 “expression” 之后的表达式的值返回给调用它的函数。 下面是一个示例:

    int sum(int i,int j)

    main()

    程序的输出为:

    21这个21从何而来?当主函数调用sum(a,b)函数时,a的值赋值给i,b的值赋给j,它说返回i+j; 它计算 i j 的值,即结果等于 21,并将 21 带回调用它的函数,即 c=sum(a,b); 它等价于 c=21,这个 21 被 sum(a,b) 的回报反转。

  12. 匿名用户2024-01-14

    这是 return 语句,用于函数的末尾。 对于 main 函数,最好返回 0,否则会被视为运行时错误。

  13. 匿名用户2024-01-13

    为什么需要退货?

    为了这个问题,我打算使用模块化思维来解释。

    定义模块(参数模块)。

    定义函数:f(s)(a,b)。

    满足公式:s=a+b

    函数名称:f(s)。

    表单参数:a, b( 在公式中变量

    函数返回值:return s

    调用模块(参数模块)。

    main 函数:main() 表示用户编写的部分。

    调用函数:f(s)(1,2)。

    满足公式:x=f(s)(1,2)。

    函数名称:f(s) 与定义的函数相同,并生成调用。

    实际参数分配给出公式的值)。

    评估:printf("%d\n",x),求 x 的值?

    传递值的过程

    调用模块函数 x=f(s)(1,2) 称为

    将参数 1 和 2 的值赋值。

    定义模块在参数 A 和 B 中

    实数参数到表单参数是单向传输的,并且是不可逆的)。

    定义模块计算 s=a+b=1+2=3

    定义模块返回

    将 s 的值赋值给。

    调用模块函数 f(s)(1,2)。

    即 x=f(s)(1,2)=s=3

    返回

    也就是说,模块中的 s 将被定义

    分配添加到调用模块中的调用函数。

    如果没有退货

    调用模块中的调用函数永远不会有固定值。

    即 x. 寻求什么无固定值

    这与数学不同

    数学。 在 C 中,相同函数名称的值是通用的。

    定义函数和调用函数的值是隔离,尽管函数名称是相同的。

    如果不赋值,则调用函数将永远不会有固定值。

  14. 匿名用户2024-01-12

    首先是猜想,在主流平台上,函数返回是通过某个通用寄存器返回的,x86平台是EAX,arm是R0,所以猜测即使void返回,如果坚持要得到返回值,也应该在返回的那一刻得到寄存器的值。

    证明:为了确认,你需要写一点**,一个最简单的void test(){a main(),但是这样不起作用,它不能编译,你需要使用手段,**如下。

    void test()

    typedef int(*f)(void);

    int main()

    是的,就是强制转换函数返回int然后调用它,结果并不出乎意料,是-858993460,这个数字似乎没什么意义,但是转换成十六进制是有意义的,0xcccccccc,在VS的调试过程中,eax总是初始化为这个值,堆栈中的数组也是如此, 而且也很有名"屯屯屯"目标**。

    再更改一下测试,进一步验证它,并尝试通过将 eax 变成 0 来让它返回 0:

    void test()

    猜测是这次会输出 0,因为 i 会被放入 EAX 然后自动减去,结果会得到确认。

    机器环境,win10 64位,IDE,Visual Studio 2015社区版。

    希望能有所帮助。

  15. 匿名用户2024-01-11

    如果 C 函数中没有返回,则一定是返回值为 void 的函数,表示不返回任何值,而是返回函数的 **,即执行汇编级别的 RET 指令,结束函数的调用。 其实返回值为 void 的函数也可以使用 return,但返回后跟没有任何变量,这意味着它只返回函数的 **,仅用于结束函数的调用。

  16. 匿名用户2024-01-10

    如果 main 没有返回函数,则默认返回随机值。 启动程序的进程无法判断程序是正常结束还是非正常结束。

  17. 匿名用户2024-01-09

    return 语句具有中断当前程序的作用,如果遇到返回,会直接返回,不执行以下**。

  18. 匿名用户2024-01-08

    嗯,没错,但是 return 只能退出当前函数,如果嵌套了多个函数,它就不起作用了,如果你想退出整个东西,请使用 exit

    例如:fun1()。

    fun2()

    main()

    此时 main 函数调用 fun2,然后 fun2 调用 fun1,fun1 直接返回,fun1 不打印,但 fun2 打印,如果不想打印 fun2,则将 fun1 中的返回值改为 exit。

  19. 匿名用户2024-01-07

    没错。 如果有返回值,则需要在函数返回中添加类型匹配量,如果没有返回值,则可以在返回后留空。

    但是,它只能用于一层函数。

  20. 匿名用户2024-01-06

    不,return 只返回一个值,在 main 函数中返回 0; 告诉系统程序正常结束,并返回非 0 值并异常结束。 函数中还有一个返回值,它向 main 函数返回一个值,这个值也可以做指针!

  21. 匿名用户2024-01-05

    从组装的角度来看,功能。

    返回值实际上是函数返回后 CPU 中 EAX 的值。 在 C 和其他语言中,如果 return 语句是用函数编写的,则该函数将在返回时对 EAX 进行最终赋值。

    intfind(int

    a,intb)

    为什么不返回一个值,因为程序递归之后,EAX的值在初始返回时被赋值为100,然后在回溯过程中,程序没有改变EAX的值,所以最后,返回值还是100。

    这是一种有问题的写作方式。 应该写。

    intfind(int

    a,intb)

    如上所述,很容易理解为什么在更改后会出现错误,因为程序在最后调用了 printf()。 EAX 中的值是 printf() 的返回值。 如果你把它作为find()的返回值,那将是错误的。

  22. 匿名用户2024-01-04

    如果在函数定义的复合语句之前使用 void

    然后什么都不返回; 如果没有 void,则返回 null,如果显示,则不显示任何内容。 通常,您需要接收返回的值,并且还需要构建一个接受该值的函数来执行该行为。

相关回答
14个回答2024-02-15

你能说清楚吗,我不知道你的意思。 是否要在 main 函数中调用一个函数,然后不知道如何定义被调用的函数? 如果是这样的话,我可以告诉你。 >>>More

7个回答2024-02-15

这个主要是带参数的,需要在控制台底部输入生成的可执行文件,然后在后面输入参数或者创建快捷方式,也可以在快捷方式中添加参数。

20个回答2024-02-15

第一步是设置一个随机种子。

#include < >>>More

21个回答2024-02-15

取决于它是在 scanf 还是 printf 中使用。

在 scanf 中,添加 * 的部分将被忽略,并且不会被参数检索。 >>>More

10个回答2024-02-15

int i=0;

char s1[10]="abc",s2[10]="efg"; >>>More