實驗6總結

來源:互聯網
上載者:User

標籤:全域   工作量   包含   結束   傳遞   第一個   複合   規則   函數   

1.函數概述:

  • 函數→function→功能,函數就是能完成一定功能的程式段。
  • 如果程式規模不大,只需一個主函數和基本的庫函數即可。
  • 否則,使用者需要編寫能實現一定功能的子函數。

2.函數的功能:

  • 主函數就像一個控制台,子函數就像控制台上的按鈕。
  • 每個子函數可以實現功能。
  • 子函數可以減少重複編寫程式段的工作量。
  • 同一個子函數可以被一個或多個函數多次調用。

3.函數使用說明:

  • C程式是由一個或多個函數組成。
  • C程式總是從main函數開始執行,而不管將其寫在前面、中間或最後。在調用完其它函數後返回到main函數。
  • 子函數相互獨立,可以互相調用,但是子函數不可調用主函數。

4.函數分類:

  • 從使用者角度看,C語言函數分為兩類:

  (1)庫函數(標準函數):是系統提供定義,使用者編程時可直接調用。printf(),scanf()。

  (2)使用者定義函數:是使用者自己編寫的用來解決具體問題的函數。cylinder(),max(),PrintStar()。

  • 從函數的形式看,函數分為兩類:

  (1)無參函數:不需要向函數傳遞參數。PrintStar()。

  (2)有參函數:需要向函數傳遞必要的參數。cylinder(r,h),max(a,b)

  • 從函數有無傳回值看,函數分為兩類:

  (1)有傳回值函數:函數經過運算,得到一個明確的結果,並需要回送該結果。cylinder(r,h),max(a,b)。

  (2)無傳回值函數:函數只是完成一系列操作步驟,不需要回送任何運算結果。PrintStar(),PrintMessage()。

5.函數定義:

  1.函數定義的一般形式:

類型標識符 函數名(形式參數說明表)→函數首部

{

  函數實現過程;                       →函數體

}

  2.函數定義說明:

  (1)類型標識符:

  • 函數的類型,與return語句傳回值的類型相同。可以理解為函數最終的結果類型。
  • 可以是任何一種有效類型,預設時預設為整型。
  • 若函數無傳回值,類型標識符為void。

  (2)函數名:

  • 它的命名要符合C語言的標識符命名規則:由字母、數字和底線組成,其中第一個字元必須是字母或底線。
  • 函數名必須唯一,不能與函數體內變數或形參名相同。

  (3)形參表:

  • 形式參數(形參):在定義函數時,函數名後面括弧中的變數名。形參是變數,必須指定類型。例如:double cylinder(double r,double h)。
  • 形參主要是用於接受主調函數傳遞過來的數值。形參類型必須與傳遞過來的資料類型一致。例如:v=cylinder(radius,height)。
  • 形參的命名只要符合變數的命名規則即可,無需和主調函數中的變數名一致。
  • 每個形參必須單獨說明類型,形參間用逗號間隔。
  • 可以不帶形參:如果函數無需從主調函數處接收資料,可以不帶形參,但是圓括弧不能省略。  

6.函數的調用:

  • 定義完一個函數後,就可以在程式中調用這個函數。
  • 調用標準庫函數時,在程式的最前面用#include命令包含相應的標頭檔。
  • 調用自訂函數時,程式中必須有與調用函數相對應的函數定義。

  1.函數調用的一般格式:

   函數名(實參表)→常量、變數、運算式

  • 實際參數(實參):調用函數時函數名後面括弧中的內容。
  • 實參列表中可以含有多個參數,每個參數間用逗號隔開。
  • 實參表中變數和運算式要有確定的值。
  • 實參也可沒有,但括弧不能省略,如PrintStar()。

  2.函數調用的一般過程:

  • 主函數開始;
  • 遇到主函數調用某個子函數時,主函數被暫停執行;
  • 子函數執行;
  • 執行完後返回主函數;
  • 再從主函數暫停位置處繼續執行,直到結束。

  3.函數調用的方式:

  • 函數語句:即把函數調用作為一個語句。如:
     PrintStar();
     printf(“***********”); 
     這時不要求函數帶傳回值,只要求完成一定的操作,通常將函數定義為“void”類型。
  • 函數運算式:函數出現在可以寫運算式的地
          方,此時需要的是函數的值。如:
    c=2*max(a,b);
    printf(“%d”,max(a,b));

  4.函數參數傳遞說明:

  • 實參可以是常量,變數,運算式,但必須有確定的值
  • 形參是變數,必須指定類型
  • 在參數傳遞過程中,實參把值複製給形參。
  • C語言中,參數的傳遞是“值傳遞”,即單向傳遞。資料只能由實參傳送給形參,而不由形參傳回給實參。 
  • 形參和實參一一對應:數量一致,類型一致,順序一致。
  • 形參在函數被調用前不佔記憶體;函數調用時為形參分配記憶體;調用結束,記憶體釋放。

  5.函數傳回值:

  • 在調用函數時,有時需要將運算結果返回主調函數,此時函數傳回值就需要使用return語句實現。
  • return語句形式:
         return   運算式;或者
         return  (運算式);

           例如:    return result; 
                        return 0; 
                        return(x>y?x:y)

  • 若函數無傳回值時,函數類型說明為void,且不能略。                                                 如:void PrintStar()
         {printf("******\n");}
    return語句只返回一個值。
  • return語句具有兩個功能:
      ①結束函數的運行;
      ②帶著運算結果(運算式的值)返回主調函數。
        如果return語句為:return ;
      則表示僅返回到調用函數的調用點,不帶傳回值。
  • 在一個函數中,return語句可以出現多次,但每次執行只能有一條return語句被執行。

  6.函式宣告:

  函數類型 函數名(參數表);
  double cylinder (double r, double h);
  void pyramid (int n);

  • 唯寫函數定義中的第1行(函數首部),並以分號結束。
  • 函式宣告:說明函數的類型和參數的情況,以保證程式編譯時間能判斷對該函數的調用是否正確。
  • 如果是庫函數,應在檔案開頭引用標頭檔;
  • 如果被調用函數定義在調用它的函數後面
    應在主調函數中對被調函數作聲明;
    在所有函數之前對被調函數作聲明,此時在主調函數中就不必再作聲明了。
  • 如果被調函數定義在調用它的函數的前面,在主調函數之前可以不加聲明。

7.變數與函數:

  1.局部變數和全域

  (1)局部變數

  • 在函數內定義的變數(包括形參)
    作用範圍:本函數內部
  • 定義在複合陳述式內的變數
    作用範圍:複合陳述式內部

  (2)全域變數

  • 在函數以外定義的變數,不從屬於任一函數。
    作用範圍:從定義處到源檔案結束(包括各函數)

  2.變數生命週期和靜態局部變數

  (1)自動變數(auto):  普通的局部變數
  int x, y;  ??  auto int x, y;
  char c1; ??  auto char c1;

  • 函數調用時,定義變數,分配儲存單元。
  • 函數調用結束,收回儲存單元。

    (2)全域變數:從程式執行開始,到程式的結束,儲存單元始終保持。

   (3)變數生命週期:變數從定義開始分配儲存單元,到運行結束儲存單元被回收的整個過程。

三、實驗心得體會:

經過這次的實驗作業,我發現自己在函數部分掌握的還是比較好的,思路也很清晰。

實驗6總結

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.