在这个指针函数中返回代码的目的是什么?

时间:2017-04-15 19:37:06

标签: c

在大学的课堂上,我的老师并没有真正解释这段代码的输出方式。当我搜索网站时,我没有遇到过这种情况,我想与你分享。我还有一个问题,这个函数是否也像递归函数一样工作?

#include <stdio.h>
void F(int *a, int b)
{
    (*a)--;b+=2;
    if(*a+b<10)
    {
        printf("\n%d %d",*a,b);
        return;
    }
    (*a)--;b--;
    printf("\n%d %d",*a,b);
    F(&b,*a);
    (*a)++;b++;
    printf("\n%d %d",*a,b);
    return;
}
main()
{
    int b=5;
    F(&b,b);
    printf("\n%d",b);
    return 0;
}

1 个答案:

答案 0 :(得分:0)

关于你的问题:

  1. Recursion is a programming technique that allows the programmer to express operations in terms of themselves. In C, this takes the form of a function that calls itself. 给定函数void F(int *a, int b)在函数体中调用自身==&gt;所以这是递归。
  2. return - Terminates current function and returns specified value to the caller function.函数F返回void,这意味着什么,只是终止并返回给调用者。因为在这个特定的例子中,return语句出现在函数结束之前,它实际上没有任何意义。没有return(在这种情况下),功能保持不变。