7、C語言——函數

來源:互聯網
上載者:User

標籤:需要   合法性   運算   使用   互相調用   知識   參數   範圍   stat   

函數

1、函數定義

    函數傳回值類型 函數名(形式參數列表)
     {
        函數體;
     }

    注意:

      定義有參函數時,形參的定義可以採用傳統方式或現代方式兩種

      1)傳統方式:

        int max(x,y)
        int x,y;不能定義形參以外的其它變數
        {}

      2)現代方式: 

        int max(intx,inty)
        {}

2、函數傳回值類型

    形式1:
      int fun(int x, int y)
      {
        return 運算式;
      }

    注意:返回的值是給調用函數整體的形式,運算式是先計算後傳回值

    形式2:
      void fun (int x)
      {
        一定不要加return語句;
      }

    注意:void沒有預留存放傳回值的空間

3、函數調用

    3個一致:個數、類型、位置

    方式1:非void型

    變數名=函數名(實參列表);

    方式2:void型

    函數名(實參列表);

4、函數原型聲明

    形式1:函數類型 函數名(形參類型1 形參1,形參類型2 形參2...);

    形式2:函數類型 函數名(形參類型1 ,形參類型2...);

5、變數三屬性

    變數三屬性:類型——定義、作用範圍——空間、儲存類別——時間

    1)類型

      類型名 變數名列表;

    2)作用範圍—— 局部變數和全域變數

      A、局部變數(或稱內部變數)

        定義:在一個函數內部定義的變數

          a、局部變數只能在它所在的函數內有效

          b、在不同的函數中可以出現同名的變數,它們分別屬於不同的變數

          c、複合陳述式中定義的變數只能在此複合陳述式中有效

          d、所有形式參數都是局部變數


       
B、全域變數(或稱外部變數)

        定義:在函數外部定義的變數

          a、全域變數的有效範圍是在本檔案內從定義該變數的位置開始到本檔案的結束

          b、 全域變數可以在它的有效範圍內被每個函數引用

          c、在同一檔案中若全域變數與局部變數同名,局部變數“屏蔽”全域變數

   
 3)儲存類別格式:

      A、auto類別變數(可以省略)

        定義同時說明類別:

          (儲存類別) 類型名 變數名

           a、auto類別變數用完後釋放所佔用空間

           b、局部變數預設為,無初始化時,初值為隨機值auto類別

           c、使用時間短,一般都為auto類別變數



     
 B、static類別變數

        定義同時說明類別:

          儲存類別 類型名 變數名

           a、static類別從定義到程式運行結束均佔用儲存空間

           b、全域變數預設為static類別,無初始化時,初值為0

           c、static類別變數只進行一次初始化

      
C、register類別變數

        定義同時說明類別:

          儲存類別 類型名 變數名

            a、register類別只能是局部變數才能被說明

            b、一般不能直接使用


       
D、extern類別變數

          格式1:定義同時說明類別:

            儲存類別 類型名 變數名;

          格式2:分別定義、說明

            類型名 變數名;

            儲存類別 變數名;

              a、extern類別變數可以加大變數的作用範圍

              b、兩種說明格式

6、先行編譯命令

      先行編譯命令

      檔案包含(include)

      #include<>——在指定的目錄下庫檔案的搜尋

      #include""——在指定標準的搜尋路徑下,在當前的工作目錄或者子目錄下進行搜尋

7、宏

    第一種:無參宏定義

        格式:

          #define 宏名 宏內容

        功能:用一個指定的標識符(宏名)來代表一串字元(宏內容)

        注意:

          1)宏名我們一般用大寫字母表示,遵守使用者自訂標識符命名規則

          2)#define可以在函數外定義也可以在函數內定義,但該命令應該在單獨一行上

            #undef命令可以提親終止宏名的範圍

          3)在進行宏定義時,可以引用已經定義的宏名進行層層置換

          4)在進行宏替換時,必須先替換完所有的宏名再運算,同時體化過程中不能亂加括弧

            原模原樣替換然後按著優先順序別計算,不要亂加括弧

    第二種:帶參宏定義

        格式:

           #define 宏名(參數列表)宏內容

        功能:提供了一種更加靈活的替換方式

        注意:

          1)在定義有參宏時,參數列表必須用一對小括弧括起且小括弧和宏名之間不能有空格

          2)對有參宏名進行替換時,需要將形參改成相應的實參,並且之一分清形參和實參的對應關係

8、小知識匯總 

    1)一個來源程式檔案可由一個或多個函數組成

       函數是C語言的基本單位

       main()函數由作業系統OS來調用的

       main()函數可以調用其他子函數,子函數可以調用其他子函數,子函數也可以自己調用自己

     2)一個C語言程式可以由一個或多個來源程式檔案組成

     3)C程式執行總是從main()開始,結束於main()結束;可調用其它函數

     4)函數不能嵌套定義,但可以互相調用,不能調用main()函數的分類

        嵌套定義:在一個函數中不能自己再定義一個函數

      5)類型區別

        原型聲明——此時有函數傳回值類型標識,有函數名,有參數類型,有分號

        調用函數——有函數名,有參數

        定義調用函數——有函數傳回值類型標識,有函數名,有參數類型,無分號

      6)三大口訣

        口訣1:運算式—看其合法性,有短路優先考慮(與、或),挑運算子先計算運算層級高,同級情況下考慮結合性

        口訣2:找配對,找控制,標語句

        口訣3:遇到return或者}返回到被函數調用處

 

7、C語言——函數

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.