美文网首页
golang 数组

golang 数组

作者: 夜空一起砍猩猩 | 来源:发表于2018-02-10 22:12 被阅读0次

与C数组变量隐式作为指针使用不同,Go数组是值类型,赋值和传参操作都会复制整个数组数据。

func test(x[2]int) {

  fmt.Printf("x: %p, %v\n", &x,x)

}

func main() {

  a:= [2]int{10,20}

  var b[2]int

  b=a

  fmt.Printf("a: %p, %v\n", &a,a)

  fmt.Printf("b: %p, %v\n", &b,b)

  test(a)

}

结果:

a:0xc820076050, [10 20]

b:0xc820076060, [10 20]

x:0xc8200760a0, [10 20]


如果需要,可改用指针或切片,以此避免数据复制。

func test(x*[2]int) {

  fmt.Printf("x: %p, %v\n",x, *x)

  x[1] +=100

}

func main() {

  a:= [2]int{10,20}

  test(&a)

  fmt.Printf("a: %p, %v\n", &a,a)

}

结果:

x:0xc8200741c0, [10 20]

a:0xc8200741c0, [10 120]

相关文章

  • Golang数组与切片

    Golang数组与切片 数组的声明 Golang中的数组属于静态数组,不允许动态扩展 Golang中数组会默认初始...

  • Go-Array

    golang初始化数组 golang中数组为值类型 方式1:指定数组长度 方式2:自行推断数组长度 方式3:指定索...

  • golang声明一个map数组

    golang 声明一个map数组

  • golang数组append切片添加与删除

    golang数组append切片添加 golang数组删除元素 1.从开头位置删除 2.从中间位置删除 3.从尾部删除

  • Go语言学习笔记(3)

    数组 Golang 中,数组是值类型。 数组的声明 数组的初始化 用 for-range 遍历数组 基本语法: 其...

  • golang 数组

    与C数组变量隐式作为指针使用不同,Go数组是值类型,赋值和传参操作都会复制整个数组数据。 func test(x[...

  • golang数组

  • Golang 数组

    声明&初始化 数组 数据是一个固定长度的数据类型,用户存储一段具有<<相同类型>>的元素的<<连续快>>。数据存储...

  • Golang:数组

    声明和初始化 声明的原则是: 指明存储数据的类型 指明存储元素的数量,也就是数组长度 以上我们声明了一个数组 ar...

  • golang数组

    数组的定义 数组是一个由固定长度的特定类型元素组成的序列,一个数组可以由零个或多个元素组成。数组的长度是数组类型的...

网友评论

      本文标题:golang 数组

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