首頁 > 後端開發 > Golang > go語言的形參佔用記憶體嗎

go語言的形參佔用記憶體嗎

青灯夜游
發布: 2022-12-28 17:19:37
原創
4746 人瀏覽過

形參變數在未出現函數呼叫時並不佔用內存,只在呼叫時才佔用,呼叫結束後會釋放記憶體。形參全名為“形式參數”,是函數定義時使用的參數;但函數定義時參數是沒有任實際何數據的,因而在函數被調用前沒有為形參分配內存,其作用是說明自變量的類型和形態以及在過程中的作用。

go語言的形參佔用記憶體嗎

本教學操作環境:windows7系統、GO 1.18版本、Dell G3電腦。

函數是組織好的、可重複使用的、用來實現單一或相關聯功能的程式碼段,其可以提高應用的模組性和程式碼的重複使用率。

函數定義和函數呼叫

函數構成了程式碼執行的邏輯結構,在Go語言中,函數的基本組成為:關鍵字func、函數名、參數列表、回傳值、函數體和回傳語句,每一個程式都包含很多的函數,函數是基本的程式碼區塊。

定義語法:

func 函数名(形参列表)(返回值类型列表) {
  函数体,通常会有return语句,返回值
}
登入後複製
  • 函數名稱:函數的標識符,用於找到函數,內部是指向函數代碼的位址。

  • 形參列表:由變數和類型構成 

  • #傳回值類型清單:函數傳回值的類型,多個回傳值需要指定多個。 

  • 函數體:實作函數功能的特定語句。 return語句:傳回值語句

函數呼叫語法:

函数名(实参列表)
登入後複製

函數參數

##用於在呼叫函數時向函數傳遞資料。 

  • 實參,實際參數。調用時給的參數。指的是具有的特定實際數據的參數。

  • 形參,形式參數。定義時使用的參數。指的是用來表示函數需要參數,而定義時參數是沒有任實際何資料的。函數/方法在被調用前沒有為他們分配內存,其作用是說明自變量的類型和形態以及在過程中的作用。

    實參與形參的關係:形參只能是變數(要指明它的資料型態);實參可以是變數、常數或表達式。

    實參與形參的個數、位置以及它們對應的資料型態應一致。


當呼叫時會發生使用實參為形參變數賦值的過程,稱為參數的傳遞。在函數的執行期間,形參是有具體資料的,形參當於函數內宣告的變數。參數的傳遞,分為值傳遞,位址傳遞兩種方式。位址傳遞時,需要形參定義為指標類型,呼叫時需要取得位址傳參。

  • 呼叫函數時若出現實參是數組名,則傳遞給形參的時數組的首地址。

  • 實參傳遞給形參是單向傳遞。形參變數在未出現函數呼叫時並不佔用內存,只在呼叫時才佔用。呼叫結束後將釋放記憶體。

範例程式碼:

func funcTest(p1 int, p2 *int) {
  p1++
  *p2++
  fmt.Println(p1, *p2)
}
func main() {
  var (
    a1 = 42
    a2 = 42
  )
  funcTest(a1, &a2)
  // 参数赋值过程
  fmt.Println(a1, a2)
}
登入後複製

以上會輸出

43 43
42 43
登入後複製
【相關推薦:

Go影片教學程式設計教學

以上是go語言的形參佔用記憶體嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板