上一章我們對函數有了基本的了解,對函數的實參和形參也有了一定的概念,上一章我們說道函數中定義的參數都是局部變量(除了static修飾的變量),那麼如果我們需要從函數中返回一個值需要怎麼做呢:我們可以用return來從函數中返回一個值。
假如有這麼個例子,用戶輸入兩個整數,然後在自定義函數中進行大小比較,然後返回大的那個值,并且在主函數中打印輸出。
這裡就需要函數有一個返回值來給主函數中的打印函數printf。
先上代碼:
在這個例子中我們在函數名前面的這個int,這個int表明返回的值的類型必須是int類型的;第二個我們說下這個return,return指明了其後的表達式的數值既是該函數的返回值;然後我們在來看這句c=max(a,b);一個函數和一個int型變量,如果這個函數沒有返回值,那麼這個表達式沒有意義,編譯器就會報錯,而這裡函數有一個int'型的返回值,實際上我們可以理解為c=(w>c?w:c的值),那麼這個表達式我們在運算符這一章中學過這個三目運算符?:,意思就是比較大小,然後把大的那個返回後賦值給c這個變量。
return會導緻函數終止,怎麼理解呢,我們用一個函數來解釋一下,我們還是用上面的例子修改一下:
這樣我想大家應該對return有了了解了吧。
剛才我們說道在函數名前的那個int,我們返回值也必須是int類型,在C語言中函數的類型聲明是函數定義的一部分,如果沒有返回值應該被聲明為void,在聲明類型時注意返回值的類型。
接下來簡單了解下不确定參數,我們一般用3個點(...)來聲明比确定參數,我們常用的printf的聲明就像這樣int printf (const char *__restrict __format, ...);,對于參數個數不确定的函數,c庫中通過stdarg.h頭文件定義了該類函數的标準方法。
函數的調用聲明就介紹到這裡,接下來講一下遞歸。
在C語言中允許一個函數條用其本身,這種調用被稱作遞歸。遞歸有使用用的挺方便但是對資源開銷挺大的,然後遞歸的條件不處理好,很容易造成無限循環。
我今天先放一個例子,來展示下遞歸,然後大家今天先想想遞歸的工作過程:
,
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!