【发布时间】:2021-11-04 18:53:13
【问题描述】:
在开始学习 Go 之前,我曾与 C 和 C++ 一起工作过一段时间,我很好奇为什么 *int 和 []int 在 golang 中被视为不同的类型。是否要将其视为数组取决于您,但它们都应该是指向内存中某个位置的指针,指示 int 类型列表的开头。该列表可能非常大,但我的观点是,为什么 []int 和 *int 在 go 中不一样?
【问题讨论】:
-
请注意,指针和数组在 C 和 C++ 中也不是一回事。
-
明白
[]int是不是一个数组;这是一个切片。[4]int是一个数组,[100]int32是一个数组;[99]bottles是一个数组;它们都是固定大小的。*int指向 one 值。 Go 不是 C 或 C++。试试这个:go.dev/blog/slices-intro 这个golang.org/ref/spec#Array_types 这个golang.org/doc/effective_go#arrays
标签: c++ arrays go pointers memory