2012-11-28 53 views
2

我對C中的返回語句有些困惑。我在C大學的介紹類中學習函數,但是我仍然不確定返回值的用途。你可以用他們做什麼?價值何去何從?例如,Return statement,values - 它們是如何使用的?

#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會發生什麼?你能夠以某種方式將返回值傳遞給其他函數嗎?

回答

0

「加入」函數返回一個整數值。在您的‘主要()’函數,要設置‘Z’來表示函數的結果...即...返回值。

0

返回值是什麼被傳遞迴調用函數,例如:

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

回報將返回產值像例如,當您使用add函數,它將返回x + y的值如此。變量總和

0

在main()函數的情況下,它返回的代碼爲calle河通常,0值表示成功,錯誤值爲非零值。

它可能在的bash腳本e.g非常有用:

foo && baa 

baa程序只運行如果foo程序已成功退出。

Tipycall示例編譯在UNIX庫:

./configure && make && make install

5

典型地,返回值是由在調用函數中的變量「捕獲」。在你的情況下,main是調用函數,而add是'被調用者',或者被調用的函數。 int z是捕獲返回值的內容。

當然,您可以將返回值傳遞給其他函數!例如:

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

將返回15!幕後發生的事情不會太複雜,因爲內部的兩個add函數首先被評估,並且返回值被壓入堆棧以供外部add函數使用。堆棧是程序用來存儲臨時值的一段內存。

main的情況下,返回值0意味着程序正確執行並且非零返回值指示錯誤是標準的。當程序啓動時,操作系統調用main

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)是調用另一個(補充)。你可以從你的主函數中調用他們兩個。

相關問題