1. 常见的值类型和引用类型分别有哪些?
值类型:基本数据类型 int 系列, float 系列, bool, string 、数组和结构体struct,使用这些类型的变量直接指向存在内存中的值,值类型的变量的值通常存储在栈中。
引用类型:指针、slice切片、map、管道chan、interface 等都是引用类型
1. 值类型和引用类型如何获取指针地址
func change(arr []int) { arr[0] = 7 fmt.Println(arr) // [7 2 3] } func change2(arr [3]int) { arr[0] = 7 fmt.Println(arr) // [7 2 3] } func main() { //值类型 x := [3]int{1,2,3} change2(x) fmt.Println(x) // [1 2 3] // 并不是你以为的 [7 2 3] fmt.Printf("%p\n",&x) //0xc000014150 //引用类型 xx := []int{1,2,3} change(xx) fmt.Println(xx) // [7 2 3] // 切片是引用类型,使用指针传值 fmt.Printf("%p\n",xx) // 0xc000014198 }
发表评论 取消回复