2017-08-02 54 views
0

我已經書面一段簡單的代碼在golang讀取陣列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獲取任何值。我無法理解它爲什麼會發生。

感謝

回答

2

你應該之前改編[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]) 
    } 

} 
+0

謝謝,這worked.But爲什麼我們需要添加和數組元素之前,因爲它代表的只是記憶poisition。 –

+0

'&'運算符用於存儲用戶輸入值的地址arr https://stackoverflow.com/a/3440480/8284461 –