go語言指標符號的 和

2021-09-08 18:37:42 字數 1472 閱讀 6206

先放一段**,人工執行一下,看看自己能做對幾題?

package main

import "fmt"

func main()

*符號的意思是對指標取值,如:*&a,就是a變數所在位址的值,當然也就是a的值了

*&可以互相抵消,同時注意,*&可以抵消掉,但&*是不可以抵消的

a*&a是一樣的,都是a的值,值為1 (因為*&互相抵消掉了)

同理,a*&*&*&*&a是一樣的,都是1 (因為4個*&互相抵消掉了)

因為有var b *int = &a

所以a*&a*b是一樣的,都是a的值,值為1 (把b當做&a看)

因為有var c **int = &b

所以**c**&b是一樣的,把&約去後

會發現**c和`b是一樣的 (從這裡也不難看出,cb也是一樣的) 又因為上面得到的&ab是一樣的 所以**c&a是一樣的,再次把*&約去後**ca`是一樣的,都是1

不信你試試?

執行的結果內的位址值(0xc200開頭的)可能會因不同機器執行而不同,***

$ go run main.go 

a = 1

&a = 0xc200000018 *&a = 1 b = 0xc200000018 &b = 0xc200000020 *&b = 0xc200000018 *b = 1 c = 0xc200000020 *c = 0xc200000018 &c = 0xc200000028 *&c = 0xc200000020 **c = 1 ***&*&*&*&c = 1 x = 1

*&可以在任何時間抵消掉,但&*不可以被抵消的,因為順序不對

fmt.println("*&a\t=\t",*&a)  //成功抵消掉,列印出1,即a的值 fmt.println("&*a\t=\t",&*a) //無法抵消,會報錯

Go 語言指標

b 什麼是指標 b 乙個指標變數指向了乙個值的記憶體位址。類似於變數和常量,在使用指標前你需要宣告指標。指標宣告格式如下 var var name var type var type 為指標型別,var name 為指標變數名,號用於指定變數是作為乙個指標。以下是有效的指標宣告 var ip int...

GO語言指標

以前學習的語言裡沒有指標操作,剛接觸到go語言指標,消化的比較慢,故寫一下。指標型別宣告 t,指標的型別為 t,例 var i int 指標型別的值 t 在等號左邊表示指標宣告var a int 32 p a p的值是指向a的位址在指標前加 獲取指標p指向的值,例 var a int 32 變數宣告...

Go語言指標

鏈客,專為開發者而生,有問必答!接下來讓我們來一步步學習 go 語言指標。我們都知道,變數是一種使用方便的佔位符,用於引用計算機記憶體位址。go 語言的取位址符是 放到乙個變數前使用就會返回相應變數的記憶體位址。package mainimport fmt func main 以上例項執行輸出結果為...