91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Golang中的指針怎么使用

發布時間:2023-04-28 15:26:51 來源:億速云 閱讀:130 作者:iii 欄目:開發技術

今天小編給大家分享一下Golang中的指針怎么使用的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

1.概念

指針:指向內存地址的變量,指針用來存儲變量的內存地址

Go 語言定義變量必須聲明數據類型,因為不同數據類型的數據占用不同的存儲空間,導致內存地址分配大小各不相同,所有指針只能存放同一類型變量的內存地址。

指針分為兩種:類型指針和切片指針

類型指針允許對數據進行修改,直接使用指針傳遞數據,無須復制數據,但類型指針不能進行偏移和運算。

切片指針是切片類型的指針,它包含起始元素的原始指針、元素數量和容量

  • 指針:也稱為指針變量,即用來存放內存地址的變量,一般情況下,內存地址的數據格式以0xcXXXXXXX表示,如0xc0000180a8或0xc0000ac058等

  • 指針是一個變量,也有自己的內存地址,它存放的內存地址是另一個變量的內存地址

  • 指針類型:是指針存放的內存地址的大小,比如指針a 定義為 int 類型,它只能存放整型變量的內存地址,所以在使用指針的時候必須聲明指針類型,確保指針只能存放一種數據類型

  • 指針賦值:將某個變量的內存地址賦值給指針,在某個變量前面使用取地址操作符“ & ”即可獲取變量的內存地址

  • 指針取值:從指針變量中通過某個變量的內存地址獲取對應的數值,只需在指針變量前面使用取值操作符“ * ”即可

2.指針定義與空指針

語法格式

var name *type

name 代表指針變量名

type 是指針變量的數據類型,如數字、字符串、切片等Go語言內置的數據類型

Go 語言的空值用 nil 表示

空指針:指針為空值

3.指針賦值與取值

在Go語言編程中,所有變量先定義后使用

// 定義一個 int 類型的變量 name 并賦值 200
var name int = 200
// 定義一個 int 類型的指針
var ptr *int
// 指針賦值,將 name 的內存地址賦值給 ptr,通過取地址符“ & ”
ptr = &name
// 指針取值,在 ptr 前面使用 “ * ” 獲取 name 的值
name1 := *ptr
/*
    & 取出內存地址
    * 根據內存地址取出對應的數值
*/

4.切片指針

切片是一種比較特殊的數據結構,便于使用和管理數據集合

切片是圍繞動態數組的概念構建的,可以按需自動增長和縮小

切片可以理解為動態數組,并根據切片里的元素自動調整切片長度

Go 語言的切片指針是以切片表示的,切片的每個元素只能存放內存地址

切片指針的語法定義如下:

// 定義方式一
var name []*type
// 定義方式二
name := []*type{}

name 代表指針變量名

type 是指針變量的數據類型,如數字、字符串等 Go 語言內置的數據類型

切片指針可以將多個變量的內存地址存放在切片中,這樣方便管理多個變量

切片指針定義后,如果沒有設置初始值,默認為空,由于切片是動態數組,其數據長度能自動調整,Go 語言不會分配內存地址,因此無法通過取地址操作符 “ & ”獲取切片指針的內存地址

5.指針的指針

指針的指針:是一個指針變量指向另一個指針變量,另一個指針變量指向某個變量

語法格式:

// 定義指針的指針
var name **type
// 從指針的指針獲取某個變量的值
v := **name

name 代表指針變量名,使用兩個取值操作符 “ * ”定義為指針的指針

type 是指針變量的數據類型,如數字、字符串、切片等Go 語言內置的數據類型

v 是從指針的指針獲取某個變量的值,必須使用兩個取值操作符 “ * ”實現

以上就是“Golang中的指針怎么使用”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

崇阳县| 牙克石市| 文安县| 高雄市| 平顺县| 浙江省| 玉林市| 福建省| 松桃| 崇左市| 金乡县| 金门县| 连江县| 成安县| 安岳县| 安吉县| 洛扎县| 保靖县| 托克逊县| 锡林郭勒盟| 达州市| 曲阳县| 兴隆县| 峡江县| 台山市| 攀枝花市| 临夏县| 沈阳市| 隆化县| 扬中市| 资溪县| 长沙县| 昌乐县| 乐昌市| 上饶县| 安吉县| 乐亭县| 永登县| 永胜县| 海宁市| 弥渡县|