面试题答案
一键面试思路
在Go语言中,传递数组时,为了优化内存使用,可以传递数组的指针而不是整个数组。这样在函数调用时不会复制整个数组,从而减少内存开销。对于三维数组[5][4][3]int
,我们可以定义一个接收数组指针的函数,然后通过三重循环遍历数组的每一个元素并进行求和。
代码实现
package main
import "fmt"
func sumArray(arr *[5][4][3]int) int {
sum := 0
for i := 0; i < 5; i++ {
for j := 0; j < 4; j++ {
for k := 0; k < 3; k++ {
sum += (*arr)[i][j][k]
}
}
}
return sum
}
你可以使用以下方式调用这个函数:
func main() {
var myArray [5][4][3]int
// 假设数组已经被初始化
result := sumArray(&myArray)
fmt.Println("Sum of array elements:", result)
}