程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> 援用參數和傳值參數的差別深刻解析

援用參數和傳值參數的差別深刻解析

編輯:關於C++

援用參數和傳值參數的差別深刻解析。本站提示廣大學習愛好者:(援用參數和傳值參數的差別深刻解析)文章只能為提供參考,不一定能成為您想要的結果。以下是援用參數和傳值參數的差別深刻解析正文


1. 我們都曉得,通俗的傳值參數是由行參傳給實參;

編譯器在函數外部為每個參數發生一個暫時變量,將每個參數壓入棧(stack)中,將實參的數值保留莅臨時變量中。

所以才有在低端8位機中,對參數的數目有比擬嚴厲的限制,由於棧的深度異常無限;固然,在通用機上也有異樣的成績,參數過量不適合,但通用機的棧的深度比低端機年夜多了;

2. 援用做參數傳遞的是變量的地址;

本質上傳遞的是變量的指針;

援用作為參數的利益是削減了暫時變量對內存的開支,是以經常使用於對年夜對象的操作;

而常援用做參數就是掩護參數不被修正;

附:堆和棧的常識
一個由c/C++編譯的法式占用的內存分為以下幾個部門

1、棧區(stack)―   由編譯器主動分派釋放 ,寄存函數的參數值,部分變量的值等。其操作方法相似於數據構造中的棧。

2、堆區(heap) ―   普通由法式員分派釋放, 若法式員不釋放,法式停止時能夠由OS收受接管 。留意它與數據構造中的堆是兩回事,分派方法卻是相似於鏈表,呵呵。

3、全局區(靜態區)(static)―,全局變量和靜態變量的存儲是放在一塊的,初始化的全局變量和靜態變量在一塊區域, 未初始化的全局變量和未初始化的靜態變量在相鄰的另外一塊區域。 - 法式停止後有體系釋放

4、文字常量區  ―常量字符串就是放在這裡的。 法式停止後由體系釋放

5、法式代碼區―寄存函數體的二進制代碼。

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