go 语言指针

作者: sha_ka | 来源:发表于2020-04-14 14:43 被阅读0次

go 语言指针

go 语言的参数传递全部都是 值传递

  • 用一个交换的例子学习指针
package main

import "fmt"

/*
指针
*/

// go 参数传递是 值传递 还是引用传递呢
// go 参数传递全部都是 ------> 值传递
func swapP(a, b *int) {
    // 2
    *a, *b = *b, *a
}

func swap2(a, b int) (int , int) {
    // 3
    return b, a  // 返回的时候交换一下位置
}

func swap(a, b int) {
    // 1
    a, b = b, a
}

func main() {
    var a int = 2
    var pa *int = &a  // &a 是取变量a的地址
    *pa = 3
    fmt.Println(a) // 3 指针发挥作用  指针不能运算
    b := 4
    swap(a, b)
    fmt.Println(a, b) // 值传递结果就是3, 4  修改了也没用 因为传递的是值
    
    
    // ----------
    //swapP(&a, &b)
    //fmt.Println(a, b) // 通过指针交换可以修改 结果为: 4,3
    // ---------

    a, b = swap2(a, b) // 通过交换返回值交换 结果为: 4,3
    fmt.Println(a, b) // 注意上边一定是注释掉的 否则结果就变回原来的 3, 4 了交换了两次有回到最初状态了

}

相关文章

  • go语言值传递与指针传递

    go语言指针 go语言作为静态编译型语言,具有指针类型,但是不提供对指针的移位危险操作,防止指针的越界等问题。 g...

  • Go语言-指针

    Go语言中的指针不同于C语言,Go语言的指针使用方法要简单很多。当然和C语言从指针定义到指针的使用都有很大的不同。...

  • Go语言 指针

    指针 概念 Go语言的指针和C语言一样也是用来保存地址的变量 格式 普通指针 指向数组的指针 注意点 GO语言中只...

  • go语言指针类型的使用

    go语言的指针类型 简单地说go语言的指针类型和C/C++的指针类型用法是一样的,除了出去安全性的考虑,go语言增...

  • Golang:关于寻址的一些问题

    Go 语言有点像 C 语言,它有指针,用 * 标识一个指针,用 & 标识一个地址,但 Go 语言的指针比较简单,没...

  • go 语言指针

    go 语言指针 go 语言的参数传递全部都是 值传递 用一个交换的例子学习指针

  • Golang 指针

    指针 区别于C/C++中的指针,Go语言中的指针不能进行偏移和运算,是安全指针。Go语言当中的指针涉及到三个点:指...

  • Go语言入门总结(六)-指针

    指针 1.&和* 在go语言中,也有指针的概念,不同于java。是没有指针的概念的。但是go语言的指针也并没有c中...

  • 13-Go语言指针和方法

    指针 普通数据类型指针 Go语言中的普通指针和C语言中的普通指针一样, 通过指针也可以间接操作指向的存储空间 Go...

  • Go语言基础之指针

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

网友评论

    本文标题:go 语言指针

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