2022-07-16:以下go语言代码输出什么?A:[];B:[5];C:[5 0 0 0 0];D:[0 0 0 0 0]。

package main

import (
	"fmt"
)

func main() {
	a := make([]int, 0, 5)
	addElem(a, 5)
	fmt.Println(a)
}

func addElem(a []int, i int) {
	a = append(a, 5)
}

答案选A。可以简单的理解切片本身是结构体,参数传递只是结构体复制传递。切片在大多数情况下,只能修改元素,不能删除或者新增元素。

在这里插入图片描述