程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++入門進階之2: 函數

C++入門進階之2: 函數

編輯:C++入門知識

1.  函數在沒有被調用時是靜止的,此時的形參只是一個符號。 函數在被調用時才執行,也是在被調用時,才由主調函數將實參賦給形參。

 

2.  函數調用執行過程:   當程序被啟動時,首先從外部存儲器將代碼加載到內存的代碼區, 然後從入口地址(main函數的起始地址)開始執行。 程序在執行過程中,如果遇到調用其他函數,則先暫停當前函數的執行,保存下一條指令的地址作為返回地址,並保存現場, 然後轉到子函數的入口地址,執行子函數。   當子函數執行完成後, 返回到主函數,恢復現場,從先前保存的指令地址開始繼續執行。

 

3. 函數的參數傳遞:  指的就是形參和實參結合的過程, 有值調用和引用調用兩種方式。

 

4. 值調用:  當發生函數調用時,給形參分配內存空間,並用實參來初始化形參,直接將實參的值傳遞給形參。  這個過程是參數值的單向傳遞過程, 此後形參的變化,不會影響到實參。

 

5. 引用調用:  引用是一種特殊類型的變量,可以被認為是另外一個變量的別名。 通過引用名與通過被引用的變量名訪問變量的效果是一樣的。

                     示例:   

                   int i,j:

                   int &ri = i;    //建立一個int 類型的引用,並將其初始化為變量i的一個別名

                   j = 10;

                   ri =  j;   //相當於i = j;

 

 

         使用引用必須注意:  a.  聲明一個引用時,必須同時對它進行初始化,使它指向一個已經存在的對象。

b. 一旦一個引用被初始化後,就不能指向其他對象

 

         使用引用作為形參, 在函數被調用時,形參會成為實參的一個別名,對形參的任何操作就是對實參的操作。

 

 

6. 內聯函數:   不是在調用時發生控制轉移, 而是在編譯時,就將函數體嵌入到了每一個調用的地方。

        inline  void   Func();

     內聯函數注意點:  內聯函數必須是功能簡單,規模較小而使用頻繁的函數,不能出現循環和switch等語句

                                     內聯函數的定義必須在第一次使用之前

                     對內聯函數不能使用異常接口聲明

       編譯器並不保證一定將inline的標識函數作為內聯函數, 還是要根據代碼而定

 

7. 默認形參函數: 必須要保證默認的形參後面不能有非默認的形參。  函數調用時,實參初始化形參的順序是從左到右。

 

 

8.  函數重載:  兩個以上的函數,具有相同的函數名,但是形參的個數或者類型不一樣,編譯器會根據實參和形參的類型以及個數的最佳匹配,自動確定調用哪一個函數,這就是函數重載。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved