go 指针

package main

import (
    "fmt"
    "unsafe"
)

func main() {
    var value int64 = 5
    var p1 = &value
    var p2 = (*int32)(unsafe.Pointer(p1))

    fmt.Println("*p1: ", *p1)
    fmt.Println("*p2: ", *p2)
    *p1 = 5434123412312431212
    fmt.Println(value)
    fmt.Println("*p2: ", *p2)
    *p1 = 54341234
    fmt.Println(value)
    fmt.Println("*p2: ", *p2)
}

返回指针

package main

import (
    "fmt"
)

func returnPtr(x int) *int {
    y := x * x
    return &y
}

func main() {
    sq := returnPtr(10)
    fmt.Println("sq:", *sq)

    fmt.Println("sq:", sq)
}

推荐阅读更多精彩内容

  • 对象的方法,如果要修改对象,必须用指针,否则修改的是临时内存。 不用指针,每次进行值拷贝,效率似乎低。不过,Erl...
    zyzyzzy阅读 657评论 0 1
  • 这段代码的输出结果是: go run for-loop.gokaren 因为 fredPtr 在赋值的时候指向的是...
    kker阅读 146评论 0 2
  • 指针 go语言指针:默认值为nil , 没有NULL常量操作符 "&" 取变量地址 &a , "*" 通过指针访问...
    今早上阅读 124评论 0 0
  • 下载JDK JDK官方下载地址 解压安装包 tar -zxvf jdk-8u121-linux-x64.tar.g...
    Gavin的小窝阅读 55评论 0 1
  • a姑娘是个乐观的人。 貌似记忆里a姑娘从来都是面带微笑的,就连你不经意的喊她的名字,她都是笑着答应着,语气里也满是...
    笑语琳玲阅读 30评论 0 0