go語言學習筆記(一):*和&的區別
*和&的區別 :
& 是取地址符號 , 即取得某個變數的地址 , 如 ; &a
*是指標運算子 , 可以表示一個變數是指標型別 , 也可以表示一個指標變數所指向的儲存單元 , 也就是這個地址所儲存的值 .
從程式碼中驗證 :
//先構建一個Person型別 :
package main
import "fmt"
type Person struct{
name string
age int
}
func (r *Person) hello() string{
return r.name ;
}
func main(){
fmt.Println(&Person{"liu",10})
var r = &Person{"liu",10}
fmt.Println(r)
fmt.Println(*r)
fmt.Println(&r)
var r2 *Person = &Person{"liu2",10}
fmt.Println(r2)
}
&是取地址符號, 取到Person型別物件的地址
*可以表示一個變數是指標型別(r是一個指標變數):
3.*也可以表示指標型別變數所指向的儲存單元 ,也就是這個地址所指向的值
4.檢視這個指標變數的地址 , 基本資料型別直接列印地址
摘自其他部落格 :
經常會見到: p . *p , &p 三個符號
p是一個指標變數的名字,表示此指標變數指向的記憶體地址,如果使用%p來輸出的話,它將是一個16進位制數。而*p表示此指標指向的記憶體地址中存放的內容,一般是一個和指標型別一致的變數或者常量。
而我們知道,&是取地址運算子,&p就是取指標p的地址。等會,怎麼又來了個地址,它到底和p有什麼區別?區別在於,指標p同時也是個變數,既然是變數,編譯器肯定要為其分配記憶體地址,就像程式中定義了一個int型的變數i,編譯器要為其分配一塊記憶體空間一樣。而&p就表示編譯器為變數p分配的記憶體地址,而因為p是一個指標變數,這種特殊的身份註定了它要指向另外一個記憶體地址,程式設計師按照程式的需要讓它指向一個記憶體地址,這個它指向的記憶體地址就用p表示。而且,p指向的地址中的內容就用*p表示。
相關文章
- go 學習筆記之初識 go 語言Go筆記
- Go 基礎語言學習筆記Go筆記
- 【Go】Go語言學習筆記-3-包Go筆記
- Go語言核心36講(Go語言進階技術一)--學習筆記Go筆記
- Go語言核心36講(Go語言基礎知識一)--學習筆記Go筆記
- GO語言學習筆記之mac環境go語言配置Go筆記Mac
- Go語言核心36講(Go語言實戰與應用一)--學習筆記Go筆記
- 一名Java開發的Go語言學習筆記(一)JavaGo筆記
- Go語言學習筆記(七)之方法Go筆記
- 【Go】Go語言學習筆記-2-函式Go筆記函式
- go與其他語言有什麼區別?學習go語言怎麼樣Go
- Go語言學習筆記 - PART9 - 介面Go筆記
- 【Go學習筆記2】go語言中的基本資料型別和包的介紹(一)Go筆記資料型別
- Go語言核心36講(Go語言進階技術十四)--學習筆記Go筆記
- Go語言核心36講(Go語言進階技術十五)--學習筆記Go筆記
- Go語言核心36講(Go語言進階技術十六)--學習筆記Go筆記
- Go語言核心36講(Go語言進階技術十二)--學習筆記Go筆記
- Go語言核心36講(Go語言進階技術十三)--學習筆記Go筆記
- Go語言核心36講(Go語言進階技術五)--學習筆記Go筆記
- Go語言核心36講(Go語言進階技術二)--學習筆記Go筆記
- Go語言核心36講(Go語言進階技術三)--學習筆記Go筆記
- Go語言核心36講(Go語言進階技術四)--學習筆記Go筆記
- Go語言核心36講(Go語言進階技術八)--學習筆記Go筆記
- Go語言核心36講(Go語言進階技術九)--學習筆記Go筆記
- Go語言核心36講(Go語言進階技術十)--學習筆記Go筆記
- Go語言核心36講(Go語言進階技術十一)--學習筆記Go筆記
- Go語言核心36講(Go語言基礎知識二)--學習筆記Go筆記
- Go語言核心36講(Go語言基礎知識三)--學習筆記Go筆記
- Go語言核心36講(Go語言基礎知識四)--學習筆記Go筆記
- Go語言核心36講(Go語言基礎知識五)--學習筆記Go筆記
- Go語言核心36講(Go語言基礎知識六)--學習筆記Go筆記
- GO語言學習筆記-反射篇 Study for Go ! Chapter nine - ReflectGo筆記反射APT
- 《JavaScript語言精粹》學習筆記一JavaScript筆記
- R語言學習筆記之一R語言筆記
- Go語言核心36講(新年彩蛋)--學習筆記Go筆記
- Go語言核心36講(導讀)--學習筆記Go筆記
- Go 語言學習筆記之陣列與切片Go筆記陣列
- Go語言核心36講(Go語言實戰與應用七)--學習筆記Go筆記