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

golang-指针

作者头像
landv
发布2019-05-30 13:15:30
3690
发布2019-05-30 13:15:30
举报
文章被收录于专栏:landv
代码语言:javascript
复制
package main

import "fmt"

func main() {
    var a int =10

    var p *int =&a //定义指针变量p,传递a的地址
    //指针:指针就是地址,指针变量就是存储地址的变量。
    a=100
    fmt.Println("a=",a)
    *p =200 //借助a变量的地址,操作a对应空间
    fmt.Println("a=",a)
    fmt.Println("*p=",*p)

    fmt.Println("&a=",&a)//&获取地址 0xc42001a0c0
    fmt.Println("a=",a) //200
    fmt.Println("p=",p) //0xc42001a0c0
    fmt.Println("*p=",*p) //200 加×就是获取值,解引用、间接引用

}
代码语言:javascript
复制
package main

import (
    "fmt"
)

func test(m int)  {
    var b int = 1000
    b += m
}

/*func main()  {
    var a int = 10
    var p *int = &a

    a = 100
    fmt.Println("a = ", a)

    test(10)

    *p = 250  // 借助a 变量的地址,操作a对应空间
    fmt.Println("a = ", a)
    fmt.Println("*p = ", *p)

    a = 1000
    fmt.Println("*p = ", *p)
}*/

/*func test()  {
    p := new(int)            // 默认类型的 默认值
    *p = 1000
}

func main()  {
    var a int = 10
    fmt.Println("&a", &a)

    var p *int

    // 在 heap 上申请一片内存地址空间

    fmt.Printf("%d\n", *p)
    fmt.Printf("%v\n", *p)        // 打印Go语言格式的字符串。

}*/

func swap(a, b int)  {
    a, b = b, a
    fmt.Println("swap  a:", a, "b:", b)
}

func swap2(x, y *int)  {
    *x, *y = *y, *x
}

func main()  {
    a, b := 10, 20

    swap2(&a, &b)            // 传地址值。
    fmt.Println("swap2: main  a:", a, "b:", b)

}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-05-29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

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