2

我对 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?你能以某种方式将返回值传递给其他函数吗?

4

6 回答 6

5

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

当然,您可以将返回值传递给其他函数!就像是:

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

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

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

于 2012-11-28T03:47:07.577 回答
0

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

于 2012-11-28T03:43:43.710 回答
0

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

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

foo && baa

baafoo如果程序成功退出,程序只会运行。

Tipycall 示例是在 UNIX 上编译库:

./configure && make && make install

于 2012-11-28T03:44:09.617 回答
0

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

于 2012-11-28T03:42:27.157 回答
0

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

int theSum = add(2, 3); // theSum will equal 5 because the method add(int x, int y) will return 5.
于 2012-11-28T03:42:55.790 回答
0

在试图理解函数如何工作时,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 函数中调用它们。

于 2012-11-28T03:56:40.677 回答