【问题标题】:Return statements, values - how are they used?返回语句、值——它们是如何使用的?
【发布时间】:2012-11-15 20:25:02
【问题描述】:

我对 C 中的 return 语句有点困惑。我正在上 C 的大学入门课,我们已经学习了函数,但是我仍然不明白返回值的用途。你能用它们做什么?价值去哪儿了?例如,

#include <stdio.h>

int add(int, int);

int main()
{
    int x=0, y =0, z;
    // insert code here...
    printf("Enter a number: ");
    scanf("%d", &x);

    printf("Enter another number: ");
    scanf("%d", &y);

    z = add(x,y);
    printf("%d\n", z);

    return z;
}

int add(int x, int y)
{
    int sum;
    sum = x + y;
    return sum;
}

由于 printf 函数,总和仅显示。 return z 会发生什么?你能以某种方式将返回值传递给其他函数吗?

【问题讨论】:

    标签: c function return return-value


    【解决方案1】:

    通常,返回值被调用函数中的变量“捕获”。在您的情况下,main 是调用函数,add 是“被调用者”或被调用的函数。 int z 是捕获返回值的对象。

    当然,您可以将返回值传递给其他函数!比如:

    z = add(add(5,7), add(1,2));
    

    将返回 15!幕后发生的事情并不复杂,首先计算内部的两个add 函数,然后将返回值压入堆栈以供外部add 函数使用。堆栈是程序用来存储临时值的一段内存。

    对于main,标准的返回值0表示程序执行正确,非零返回值表示错误。 main在程序启动时被操作系统调用。

    【讨论】:

      【解决方案2】:

      在试图理解函数如何工作时,main() 方法中的返回值并不重要。您通常返回 0 或 -1 来指示程序的状态。 在 add 函数中,您将一个 int 返回给调用 add 方法的任何其他函数。在您的情况下,主要方法是调用 add 函数,并且 add 函数返回一个 int 。 您可以从您声明的任何其他方法调用 add 函数,因此您可以重用函数。这就是函数最重要的好处之一,您可以编写一次代码并多次使用它。所以你可以做这样的事情

      int addNumbers(int x,int y,int z)
      {
      
      int sum = 0;
      
      sum = sum + add(y,x);
      sum = sum + add(z,0); // or sum = add(z,sum) 
      
      return sum;
      }
      

      现在你有两个函数,其中一个(addNumbers)正在调用另一个(add)。你可以从你的 main 函数中调用它们。

      【讨论】:

        【解决方案3】:

        返回值是传回调用函数的值。例如:

        int theSum = add(2, 3); // theSum will equal 5 because the method add(int x, int y) will return 5.
        

        【讨论】:

          【解决方案4】:

          在 main() 函数的情况下,它是返回码给调用者。通常,0 值表示成功,非零值表示错误。

          它在 bash 脚本中可能非常有用,例如:

          foo && baa
          

          baa 程序仅在foo 程序成功退出时运行。

          Tipycall 示例是在 UNIX 上编译库:

          ./configure &amp;&amp; make &amp;&amp; make install

          【讨论】:

            【解决方案5】:

            return 将返回输出值。例如,当您使用 add 函数时,它将返回 x+y 的值,从而返回 sum 变量

            【讨论】:

              【解决方案6】:

              您的“add”函数返回一个整数值。在“main()”函数中,您将“z”设置为该函数的结果......即......返回值。

              【讨论】:

                猜你喜欢
                • 2023-01-07
                • 2012-05-11
                • 2014-01-29
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2012-04-07
                • 2017-05-05
                • 1970-01-01
                相关资源
                最近更新 更多