指針
1、簡單的定義一個指針
package main import "fmt" func main(){ var p *int i :=2 p = &i fmt.Println("memory address i:",p) } //執行結果: memory address i: 0xc42000a2e0
2、打印指針的值
package main import "fmt" func main(){ var p *int i :=2 p = &i fmt.Println("memory address i:",p) fmt.Println(*p) } //執行結果: memory address i: 0xc42000a2e0 2
3、指針賦值
package main import "fmt" func main(){ var p *int i :=2 p = &i fmt.Println("memory address i:",p) fmt.Println(*p) *p = 3 fmt.Println(*p) fmt.Println(i) } //執行結果: memory address i: 0xc42000a2e0 2 3 3 //我們發現*p 和 i的值都變了,因為指針地址是一個。
4、指針值拷貝與指針值更改
package main import "fmt" func changValue(x int){ x = 20 } func changValueNow(x *int){ *x = 20 } func main(){ var p *int i :=2 p = &i fmt.Println("memory address i:",p) fmt.Println("memory address p:",&i) fmt.Println(*p) *p = 3 fmt.Println(*p) fmt.Println(i) changValue(i) fmt.Println("i =",i) changValueNow(&i) fmt.Println("now i:",i) } //執行結果: memory address i: 0xc42000a2e0 memory address p: 0xc42000a2e0 2 3 3 i = 3 //傳過去3,改為20,打印i還是3 說明這種只是值拷貝并沒更改本身 now i: 20 //傳過去一個指針地址,將地址值改為20,打印i是20,傳遞指針內存地址修改將改變指針的值。
5、指針申明
package main import "fmt" func changValue(x int){ x = 20 } func changValueNow(x *int){ *x = 20 } func main(){ var p *int i :=2 p = &i fmt.Println("memory address i:",p) fmt.Println("memory address p:",&i) fmt.Println(*p) *p = 3 fmt.Println(*p) fmt.Println(i) changValue(i) fmt.Println("i =",i) changValueNow(&i) fmt.Println("now i:",i) pj := new(int) //使用new 創建一個int型的指針 changValueNow(pj) fmt.Println("pj = ",*pj) } //執行結果: memory address i: 0xc42000a2e0 memory address p: 0xc42000a2e0 2 3 3 i = 3 now i: 20 pj = 20
6、golang中沒有指針的運算操作。
另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
分享標題:golang指針-創新互聯
URL標題:http://newbst.com/article28/dggcjp.html
成都網站建設公司_創新互聯,為您提供建站公司、手機網站建設、域名注冊、定制開發、品牌網站設計、網站排名
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯