Go中的指针 *和 地址&

Python/Go 林涛 6920℃ 0评论

 

go语言中&放在一个变量前,代表取变量的内存地址,类似python中的id()这个函数,但是python中其实是没有指针这个概念的。

package main

import “fmt”

func main() {
a := “A” // a的类型为 string
b := &a // b的类型为*string *代表指针,这里b是一个指针变量
fmt.Println(b) // 0xc0420381d0 这里a是被取地址的变量,b变量进行接收。
}

变量,指针,地址三者的关系是:每个变量都拥有地址,指针的值就是地址。在对变量使用&取得地址后,可以对指针使用*进行取值。

package main

import “fmt”

func main() {
a := “A” // a的类型为 string
b := &a // b的类型为*string *代表指针,这里b是一个指针变量
res := *b
fmt.Println(b) // 0xc0420381d0 这里a是被取地址的变量,b变量进行接收。
fmt.Println(res) // “A”
}

 

&和*是一对互补操作符,&取出地址,*根据地址取出地址指向的值。

 

 

 

如需转载请注明: 转载自26点的博客

本文链接地址: Go中的指针 *和 地址&

转载请注明:26点的博客 » Go中的指针 *和 地址&

喜欢 (0)or分享 (0)
0 0 投票数
文章评分
订阅评论
提醒
guest

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

0 评论
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论x