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を返します!あまり複雑になることなく、舞台裏で行われていることは、内側の2つのadd関数が最初に評価され、戻り値がスタックにプッシュされて外側のadd関数が消費されることです。スタックは、プログラムが一時的な値を格納するために使用するメモリのセクションです。

の場合、の戻り値はプログラムが正しく実行されたことを意味し、ゼロ以外の戻り値はエラーを示す mainのが標準です。プログラムの起動時にオペレーティングシステムによって呼び出されます。0main

于 2012-11-28T03:47:07.577 に答える
0

関数がどのように機能するかを理解しようとする場合、main() メソッドの戻り値は重要ではありません。通常、プログラムの状態を示すために 0 または -1 を返します。add 関数では、 add メソッドを呼び出す他の関数に int を返しています。あなたの場合、メイン メソッドは add 関数を呼び出しており、add 関数は int を返します。宣言した他のメソッドから add 関数を呼び出すことができるため、関数を再利用できます。これは関数の最も重要な利点の 1 つであり、一度コードを記述して何度も使用できることです。だからあなたはこのようなことをすることができます

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;
}

これで 2 つの関数ができ、そのうちの 1 つ (addNumbers) がもう 1 つの関数 (add) を呼び出しています。メイン関数から両方を呼び出すことができます。

于 2012-11-28T03:56:40.677 に答える
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

return は出力値を返します。たとえば、add 関数を使用すると、x+y の値が返されるため、合計変数が返されます。

于 2012-11-28T03:43:43.710 に答える
0

main() 関数の場合は、呼び出し元への戻りコードです。通常、0 の値は成功を意味し、エラーの場合は 0 以外の値を意味します。

これは、bash スクリプトで非常に役立つ場合があります。

foo && baa

baafooプログラムが正常に終了した場合、プログラムは実行されます。

Tipycall の例は、UNIX でライブラリをコンパイルしています。

./configure && make && make install

于 2012-11-28T03:44:09.617 に答える