2014-11-05 39 views
-7

在帶有void返回類型的函數中,返回是什麼;聲明給予? 例如,對於一個鏈表: -在返回類型爲void的函數中,返回語句的含義是什麼;

void fun1(struct node* head) 
{ 
    if (head == NULL) 
    return; 
    fun1(head->next); 
    printf("%d ", head->data); 
} 

鏈表的第一個節點是頭。預期的輸出是所有節點以相反的順序。但是如何?

+0

這個問題可以通過簡單的互聯網搜索快速回答。 – ravron 2014-11-05 18:06:33

+1

...或通過使用自己的大腦。 – 2014-11-05 18:08:23

+0

@ TheParamagneticCroissant:那是時髦嗎? – Deduplicator 2014-11-05 18:09:12

回答

0

void函數的return - 意味着該函數將不會繼續運行,並且不會立即向其調用者返回任何內容,我們使用它來減少函數正在運行的時間,而當我們沒有其他事情要做時。

在你的情況下,它是遞歸函數(一個調用自己的函數)。

http://en.wikipedia.org/wiki/Recursion

您有一個if(爲停止條件),這是當你沒有一個火災head 所以沒有什麼做的,你「迴歸」跳過接下來的幾排只需退出該功能即可。

0

怎麼樣?

if(head == NULL) return; // Leave if nothing left to do 
fun1(head->next);   // Process the next (later) element now with recursion 
printf("%d ", head->data); // Print the current element 

return;簡單地結束其在執行的功能,僅在功能與返回型void有效。

相關問題