Golang阵列输入未按预期工作

Golang阵列输入未按预期工作,go,Go,我已经写了一段简单的代码来读取golang中的数组 func main(){ var n int fmt.Scanf("%d", &n) var arr [200] int for i := 0; i < n; i++ { fmt.Printf("\nEnter %d:", i) fmt.Scanf("%d", arr[i]) } } 在这里,当我为数组位置0输入值时,它会自动跳转到数组位置2,而不会为数组位置1获取任何值。我无法理解为什么

我已经写了一段简单的代码来读取golang中的数组

func main(){
  var n int
  fmt.Scanf("%d", &n)
  var arr [200] int

  for i := 0; i < n; i++ {
    fmt.Printf("\nEnter %d:", i)
    fmt.Scanf("%d", arr[i])
  }

}
在这里,当我为数组位置0输入值时,它会自动跳转到数组位置2,而不会为数组位置1获取任何值。我无法理解为什么会发生这种情况


谢谢

您应该在arr[i]之前添加“&”

func main(){
  var n int
  fmt.Scanf("%d", &n)
  var arr [200] int

  for i := 0; i < n; i++ {
    fmt.Printf("\nEnter %d:", i)
    fmt.Scanf("%d", &arr[i])
  }

}

您应该在arr[i]之前添加“&”

func main(){
  var n int
  fmt.Scanf("%d", &n)
  var arr [200] int

  for i := 0; i < n; i++ {
    fmt.Printf("\nEnter %d:", i)
    fmt.Scanf("%d", &arr[i])
  }

}

谢谢,它起作用了。但是为什么我们需要在数组元素之前添加&因为它只表示内存的位置。函数中使用了“&”运算符将用户输入的值存储在arr的地址中。谢谢,它起作用了。但是为什么我们需要在数组元素之前添加&因为它只表示内存的位置。函数中使用了“&”运算符将用户输入的值存储在arr的地址中