美文网首页
Go语言之指针作为参数

Go语言之指针作为参数

作者: 测试探索 | 来源:发表于2020-06-02 06:23 被阅读0次
值类型参数传递
package main

import "fmt"

func main(){
    a := 10
    fmt.Println("fun1()函数调用前a的值:",a)
    fun1(a)
    fmt.Println("fun1()函数调用后a的值:",a)

    fun2(&a)
    fmt.Println("fun2()函数调用后a的值:",a)
}

func fun1(num int) {
    fmt.Println("fun1()函数中,num的值:",num)
    num = 100
    fmt.Println("fun1()函数中修改num的值:",num)
}

func fun2(p1 *int) {
    fmt.Println("fun2()函数中,p1的值:",p1)
    *p1 = 200
    fmt.Println("fun2()函数中修改p1的值:",*p1)
}
//结果
fun1()函数调用前a的值: 10
fun1()函数中,num的值: 10
fun1()函数中修改num的值: 100
fun1()函数调用后a的值: 10
fun2()函数中,p1的值: 0xc0000a0068
fun2()函数中修改p1的值: 200
fun2()函数调用后a的值: 200

image.png
数组作为参数
package main

import "fmt"

func main(){
    arr1 := [4]int{1,2,3,4}
    fmt.Println("fun3()函数调用前arr1的值:",arr1)
    fun3(arr1)
    fmt.Println("fun3()函数调用后arr1的值:",arr1)

    fun4(&arr1)
    fmt.Println("fun4()函数调用后arr1的值:",arr1)
}

func fun4(p2 *[4]int){  //引用传递
    fmt.Println("fun4()函数中数组指针:",p2)
    p2[0] = 200
    fmt.Println("fun4()函数中修改后数组指针:",p2)
}

func fun3(arr2 [4]int){  //值传递
    fmt.Println("fun3()函数中数组:",arr2)
    arr2[0] = 100
    fmt.Println("fun3()函数中修改数组:",arr2)
}
//结果
fun3()函数调用前arr1的值: [1 2 3 4]
fun3()函数中数组: [1 2 3 4]
fun3()函数中修改数组: [100 2 3 4]
fun3()函数调用后arr1的值: [1 2 3 4]
fun4()函数中数组指针: &[1 2 3 4]
fun4()函数中修改后数组指针: &[200 2 3 4]
fun4()函数调用后arr1的值: [200 2 3 4]

相关文章

  • Go语言之指针作为参数

    值类型参数传递 数组作为参数

  • Go语言指针作为函数参数

    Go 语言允许向函数传递指针,只需要在函数定义的参数上设置为指针类型即可。以下实例演示了如何向函数传递指针,并在函...

  • Go语言学习笔记(三)

    指针 Go的指针不能运算 参数传递 Go的参数传递是值传递(值传递:开辟新的空间,拷贝传递参数的值,引用传递:引用...

  • 2018-09-20 Go学习拾贝

    Go的指针与值在作为接受者和参数时的表现不同 方法与指针重定向比较前两个程序,你大概会注意到带指针参数的函数必须接...

  • 第03天(复合类型)_03

    13_数组做函数参数.go 14_数组指针做函数参数.go 15_切片的长度和容量.go 16_切片的创建.go ...

  • go 语言指针

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

  • 指针作为函数参数

    在java和c++中,都是采用按值传递 用指针作为函数参数,可以将其转换为按址传递,这样系统变量也能够进行按址传递了

  • Go 函数参数传递详解

    前言:go语言函数参数为值拷贝(指针参数为指针拷贝)。 形参和实参百科1.普通函数参数2.特殊函数参数 1.普通函...

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

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

  • 2-7 指针

    指针 不能运算 参数传递 go语言只有值传递一种方式

网友评论

      本文标题:Go语言之指针作为参数

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