在帶有void返回類型的函數中,返回是什麼;聲明給予? 例如,對於一個鏈表: -在返回類型爲void的函數中,返回語句的含義是什麼;
void fun1(struct node* head)
{
if (head == NULL)
return;
fun1(head->next);
printf("%d ", head->data);
}
鏈表的第一個節點是頭。預期的輸出是所有節點以相反的順序。但是如何?
在帶有void返回類型的函數中,返回是什麼;聲明給予? 例如,對於一個鏈表: -在返回類型爲void的函數中,返回語句的含義是什麼;
void fun1(struct node* head)
{
if (head == NULL)
return;
fun1(head->next);
printf("%d ", head->data);
}
鏈表的第一個節點是頭。預期的輸出是所有節點以相反的順序。但是如何?
void
函數的return
- 意味着該函數將不會繼續運行,並且不會立即向其調用者返回任何內容,我們使用它來減少函數正在運行的時間,而當我們沒有其他事情要做時。
在你的情況下,它是遞歸函數(一個調用自己的函數)。
http://en.wikipedia.org/wiki/Recursion
您有一個if
(爲停止條件),這是當你沒有一個火災head
所以沒有什麼做的,你「迴歸」跳過接下來的幾排只需退出該功能即可。
怎麼樣?
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
有效。
這個問題可以通過簡單的互聯網搜索快速回答。 – ravron 2014-11-05 18:06:33
...或通過使用自己的大腦。 – 2014-11-05 18:08:23
@ TheParamagneticCroissant:那是時髦嗎? – Deduplicator 2014-11-05 18:09:12