前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Go基础——指针

Go基础——指针

作者头像
羊羽shine
发布2019-05-29 17:01:43
2280
发布2019-05-29 17:01:43
举报
文章被收录于专栏:Golang开发
代码语言:javascript
复制
package main

import "fmt"

func main() {
    a := 43;
    fmt.Println(a)
    fmt.Println(&a)
    var b = &a
    fmt.Println(b)
    fmt.Println(*b)
    *b = 20
    fmt.Println(a)
}
结果是:
43
0xc420080008
0xc420080008
43
20

` 指针的使用 以下结果x还是5 不不能改变初始化值。

代码语言:javascript
复制
package main

import "fmt"

func zero(z int){
    z = 0
}
func main() {
    x :=5
    zero(x)
    fmt.Print(x)
}

zero函数中 z的地址很main函数的地址是不相同的所以根本没有修改x的值

代码语言:javascript
复制
func zero(z int) {
    fmt.Println(&z)        // address in func zero
    z = 0
}

func main() {
    x := 5
    fmt.Println(&x)        // address in main
    zero(x)
    fmt.Println(&x)
    fmt.Println(x) // x is still 5
}
结果:
0xc420080008
0xc420080020
0xc420080008
5

通过指针可以修改在函数中修改值

代码语言:javascript
复制
func zero(z *int) {
    fmt.Println(z)
    *z = 10
}

func main() {
    x := 5
    fmt.Println(&x)
    zero(&x)
    fmt.Println(x) // x is 0
}
结果是:
0xc42001a050
0xc42001a050
10
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.01.28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档