2-16 指针
指針就是地址
%p,地址占位符。
&value 對(duì)值取地址。
*ptr? 對(duì)地址取值。
例
func main() {//聲明變量a,系統(tǒng)會(huì)開辟一片內(nèi)存(地址),里面存的值是123
var a int = 123
fmt.Printf("a的類型是%T\n", a)
fmt.Printf("a的值是%d\n", a)
fmt.Printf("a的地址是%p\n", &a)
var aPtr = &a
//aPtr的類型是int型指針
fmt.Printf("aPtr的類型是%T\n",aPtr)
fmt.Println(*aPtr)
//修改aPtr地址指向的值
*aPtr = 456
fmt.Println(*aPtr)
fmt.Println(a)
}
執(zhí)行結(jié)果
?
指針的類型不可更改
*aPtr = 456fmt.Println(*aPtr)
fmt.Println(a)
//aPtr指向的值是int,不能講int外的數(shù)據(jù)類型賦值給aPtr
var x = "你好"
//會(huì)報(bào)編譯錯(cuò)誤
*aPtr = x
?
?
指向指針的指針(二級(jí)指針)
?
func main() {//將x的地址賦值給mPtrvar x = 123var mPtr *int = &x//將mPtr變量的地址賦值給MmPtrMmPtr := &mPtrfmt.Println(MmPtr)//打印MmPtr的類型。fmt.Printf("MmPtr的類型是%T", MmPtr)// 打印x的值fmt.Println(*mPtr)fmt.Println(*(*MmPtr))fmt.Println(**MmPtr) }?執(zhí)行結(jié)果
?
轉(zhuǎn)載于:https://www.cnblogs.com/paad/p/11028358.html
總結(jié)
- 上一篇: 西北工业大学复试上机
- 下一篇: 算法2:邻居好说话:冒泡排序