精品专区-精品自拍9-精品自拍三级乱伦-精品自拍视频-精品自拍视频曝光-精品自拍小视频

網站建設資訊

NEWS

網站建設資訊

go語言操作指針 go 指針變量

golang-指針類型

tips: *號,可以指向指針類型內存地址上的值,號,可以獲取值類型的內存地址

為鄂倫春等地區用戶提供了全套網頁設計制作服務,及鄂倫春網站建設行業解決方案。主營業務為網站建設、做網站、鄂倫春網站設計,以傳統方式定制建設網站,并提供域名空間備案等一條龍服務,秉承以專業、用心的態度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

每一個變量都有內存地址,可以通過變量來操作內存地址中的值,即內存的大小

go語言中獲取變量的內存地址方法:通過 符號可以獲取變量的地址

定義:普通變量存儲的是對應類型的值,這些類型就叫值類型

變量b,在內存中的地址為:0x1040a124,在這個內存地址上存儲的值為:156

定義:指針類型的變量存儲的是?個地址,所以?叫指針類型或引?類型

b 是值類型,它指向的是內存地址上的值

a是指針類型,它指向的是b的內存地址

指針類型定義,語法: var 變量名 *類型

指針類型在定義完成后,默認為空地址,即空指針(nil)

在定義好指針變量后,可以通過***** 符號可以獲取指針變量指向的變量

在這里的 *a 等價于 b,通過修改 *a ,最終修改的是值類型b的值

這里a,d是值類型,b,c是指針類型

d就相當于把a內存地址上值,在內存中從新開辟了一塊空間存儲,d和a互不影響

b,c相當于指向了a的內存地址,當使用*號引用出內存地址上的變量上,修改值得,a的值也會跟著改變

Golang 指針和結構體

于c語言相同,go中也有指針和結構體的概念。指針表示變量的內存地址,結構體用來存儲同一類型的數據。

定義一個指針變量,將變量a的地址賦給指針變量p。這樣,指針變量p也就指向了變量a所在的內容空間。

new 函數返回一個指針變量

fmt.scan() 就是傳入一個指針變量。

兩種方法都可以使用。

以上簡要介紹了go語言中的指針和結構體。

GO 一文搞懂指針和地址值的區別

go語言中的指針和地址值,在使用上常常具有迷惑性,主要是其特殊的*、符號的使用,可能會讓你摸不透,本文希望能講清楚go語言的指針(pointer)和值(value)。

這里先簡單的對指針和地址值概念做一個定義:

這是因為go方法傳遞參數的方式導致的,go方法函數傳遞參數傳遞的是一個拷貝,看看下面的程序會輸出什么?

答案是8,而不是9,因為AddAge函數修改的是學生的一個備份,而不是原始的學生對象

如果你想正確的給學生年齡增加的話,函數傳遞的需要是這個值的指針,如下所示:

需要注意的是,這里我們的指針傳遞的仍然是一個拷貝,比如,如果你將s賦值給另外一個指針地址,不會影響原有的指針,這點可以自行實踐下。

那在使用go語言開發的時候,何時該用指針何時改用地址值呢?比如考慮以下場景:

簡單原則: 當你不確定該使用哪種的時候,優先使用指針

如果考慮在數組、切片、map等復合對象中使用指針和值,比如:

很多開發者會認為b會更高效,但是被傳遞的都是一個切片的拷貝,切片本身就是一個引用,所以這里被傳遞的其實沒有什么區別。

對于指針和地址值的使用,大家需要牢記的一點就是go數據傳遞的不可變性,活學活用此特點,在無狀態函數中此特性非常有用。


本文標題:go語言操作指針 go 指針變量
網頁地址:http://m.jcarcd.cn/article/hhoesh.html
主站蜘蛛池模板: 中文字幕高清免费 | 中文字幕三级 | 午夜综合网 | 成人午夜亚洲精品无 | 脚交网址| 91精品福利社 | 1000部禁止18 | 日韩成人AⅤ | 韩日精品在线观看 | 日本偷窥| 国产乱子伦l精品 | 国产卡一卡三卡 | 国产欧美一级精品 | 国产在线愉拍视频 | 欧美日韩另类在线 | 日本免费一区二区三 | 午夜福利体验 | 99自拍网| 欧美日韩日本一区 | 国产九九精品在线 | 欧美性xxxxx 欧美性xxxxx极 | 国产亚洲第一页电影 | 国产精品成人国 | 国产午夜在线视频 | 日本免费高清亚洲 | 国产卡一卡二卡三卡 | 91高清影视| 韩国成人精品久 | 国产亚洲午夜黄频 | 老妇炕上偷老汉 | 91热成人精品国 | 中文字幕亚 | 国产欧美国日产综合 | 日韩中文字幕国产 | 日韩免费精品视频 | 日韩不卡| 国产精品免费小视频 | 不卡一区 | 九九99精品 | 国产精品推荐一区 | 岛国一级视频 |