【问题标题】:Golang array input not working as expectedGolang 数组输入未按预期工作
【发布时间】:2017-08-02 04:18:24
【问题描述】:

我写了一段简单的代码来读取 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])
  }

}

它正在生成以下输出:

go run array_input.go 
5

Enter 0:1

Enter 1:
Enter 2:2

Enter 3:
Enter 4:4

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

谢谢

【问题讨论】:

    标签: go


    【解决方案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])
      }
    
    }
    

    【讨论】:

    • 谢谢,它成功了。但是为什么我们需要在数组元素之前添加 & 因为它只代表内存的位置。
    • 函数中使用了'&'运算符,将用户输入的值存储在arrstackoverflow.com/a/3440480/8284461的地址中
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多