当前位置:网站首页>golang---变量与其内容的存放

golang---变量与其内容的存放

2022-06-09 04:07:00 IT艺术家-rookie

首先,&是取址符,可以得到变量的内存地址

var a int
	a = 45
	fmt.Println("&a=", &a) //=>&a= 0xc00000c2b8 16进制

这个地址区别于Java中变量的地址。这里取出的地址,我们可以说它是变量的地址,也可以说是45这个值所在的地址,也就是说,变量的地址和其值的地址一样(这里不包括数组,切片,map这些复杂类型的变量)。
Java中变量保存了值的内存地址,就是说,变量的地址和其值的地址不是一个地址

切片类型的变量的地址

也就是切片第一个元素的地址

var arr []float32
	fmt.Printf("%p&arr=\n", arr)
	arr = append(arr, []float32{
    11.0, 22, 12, 24}...)
	fmt.Printf("%parr=\n", arr)

	fmt.Println("&arr=", &arr[0])
	fmt.Println("&arr=", &arr[1])
	fmt.Println("&arr=", &arr[2])
	fmt.Println("&arr=", &arr[3])
	fmt.Printf("%parr=\n", arr)
//0x0&arr=
//0xc00000c2d0arr= 和切片的第一个元素地址一样
//&arr= 0xc00000c2d0
//&arr= 0xc00000c2d4
//&arr= 0xc00000c2d8
//&arr= 0xc00000c2dc
//0xc00000c2d0arr=

原网站

版权声明
本文为[IT艺术家-rookie]所创,转载请带上原文链接,感谢
https://blog.csdn.net/newbieJ/article/details/125188799