go 数组 new ()

    arr1 :=  [5]int
    arr1x :=  arr1   //值传递
    arr1x[0] = 100

    fmt.Println(arr1, arr1x)
    //输出:  [0 0 0 0 0]    [100 0 0 0 0]   
    //arr1 不变

    arr2 := new([5]int)
    arr2x := arr2  //地址传递
    arr2x[0] = 200

    fmt.Println(arr2, arr2x)
    //输出 : &[200 0 0 0 0] &[200 0 0 0 0]     
    //arr2 被改变

    arr3 := *arr2  //地址传递加上*   相当于值传递了
    arr3[1] = 300
    fmt.Println(arr2, arr2x)
    //输出:  [200 300 0 0 0]              &[200 0 0 0 0]
本作品采用《CC 协议》,转载必须注明作者和本文链接
wubuze
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!