美文网首页
Go基础——指针

Go基础——指针

作者: _羊羽_ | 来源:发表于2018-01-28 02:27 被阅读750次
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 不不能改变初始化值。

package main

import "fmt"

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

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

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

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

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

相关文章

  • protoc-生成go指针

    protoc-生成go指针 这里指的是为结构体中基础类型生成go指针,嵌套结构体默认就是指针 为什么需要生成指针?...

  • Go基础——指针

    `指针的使用以下结果x还是5 不不能改变初始化值。 zero函数中 z的地址很main函数的地址是不相同的所以根本...

  • Golang学习笔记4——控制语句

    1.基础知识补充(指针、递增递减语句) 指针go虽然保留了指针,但是与其它编程语言不同的是,在go当中不支持指针运...

  • Golang基础(三)——复杂类型

    Golang基础(三)——复杂类型 @([07] golang)[Go总结] [TOC] 指针 定义 指针变量可以...

  • Go语言探索 - 4(原创)

    Go语言基础系列博客用到的所有示例代码 在上一篇文章中,主要学习了Go语言的变量、指针、指针变量、常量以及类型转换...

  • Go语言探索 - 9(原创)

    Go语言基础系列博客用到的所有示例代码 在上一篇文章主要学习了Go语言中的数组、指针数组以及二级指针,本篇文章主要...

  • 关于golang指针的理解与使用

    Go指针理解 Go 有指针,但是没有指针运算。你不能用指针变量遍历字符串的各个字节。在 Go 中调用函数的时候,得...

  • Go语言基础之指针

    区别于C/C++中的指针,Go语言中的指针不能进行偏移和运算,是安全指针。 要搞明白Go语言中的指针需要先知道3个...

  • Go基础篇之指针

    前段时间,我羊了,还是没有进决赛圈呀。今天刚恢复,精神气好了一些。 今天来说说 Go 语言基础中的指针。 Go 语...

  • 特殊数据类型

    指针 GO 语言像 C 一样有指针,可以通过指针访问数据,但是 GO 的指针要安全的多: 首先,访问空指针会直接报...

网友评论

      本文标题:Go基础——指针

      本文链接:https://www.haomeiwen.com/subject/fgcaaxtx.html