1. 程式人生 > >函數那些事

函數那些事

相同 開頭 int pri 信息 頭文件 scan lin sca

我們在做大的項目時往往需要很多行代碼,小到一個學生信息管理系統(約幾百行代碼),大到是一個系統(如Linux系統約幾G的代碼)。這時如果把這些代碼放到一個文件中,甚至一個主函數中,那麽代碼非常繁瑣。在日常的維護中是非常麻煩的。

為了解決這個問題,所以我們把項目分成幾個小小的模塊,而這些模塊往往會使用相同的功能。所以把這些相同功能的代碼放到一個函數中。如我們經常使用的輸入函數(scanf)和輸出函數(printf)等,都是存放在相應的頭文件中。這些頭文件的代碼是能查看的,但需要相應的方法,不需要大家知道裏面的內容,想知道的可以百度。

函數的使用和變量一樣,都需要先定義再使用。而如果想先使用某個函數,後定義該函數,則需要先聲明該函數。聲明方式為:函數返回類型 函數名(參數列表);,參數列表可以省略,即:函數返回類型 函數名();。如果在主函數(main函數)前定義了該函數,則不需要進行聲明。

因為函數是你想讓它有相應的功能,所以要定義該函數,定義方式為:函數返回類型 函數名(參數列表){實現相應功能的代碼}。其中參數列表是不能省略的。函數返回類型不僅可以是定義變量的所有類型,還可以是空返回類型void。其實主函數(main函數)的定義也可以是void,這樣定義主函數:void main()。建議你們現在不要這樣定義。函數名也要符合C語言的標識符命名規則(只能有字母、下劃線、數字組成,且不能以數字開頭)。

函數也有和switch語句、循環語句中的break語句同樣的功能語句,那就是return語句。在有返回類型的函數中,函數在遇到return語句後就會結束該函數後面的代碼的執行,直接返回被調函數,繼續執行被調函數調用該函數的後面代碼。並返回return後面的數據。並且返回的數據可以賦值給一個變量;return語句只能返回一個數據,不能返回多個數據。

函數的調用方式是: 函數名(參數列表);,並且參數列表不能有參數的數據類型。我們把定義和聲明的參數列表中的變量稱為形參,形參就像是提前在函數的第一行代碼的執行定義並賦值的變量。我們也把調用函數時的參數列表中的變量稱為實參,實參既是調用函數和被調函數進行數據傳遞方式之一,也是控制背調函數的執行。

因為我們集訓不講指針的知識,所以你們現在調用的函數時都是不會改變實參的值。特例是交換兩個數的值時這樣調用change函數(我把函數交換值的名字定義為change),change(a,b);。這樣a和b 的值時不會改變的。

函數那些事