golang中内存地址计算-根据内存地址获取下一个内存地址对应的值
package main import ( "fmt" "unsafe" ) func main() { // 根据内存地址获取下一个字节内存地址对应的值 dataList := [3]int8{11, 22, 33} // 1. 获取数组第一个元素的地址 var firstDataPtr *int8 = &dataList[0] // 2. 转换成Pointer类型 ptr := unsafe.Pointer(firstDataPtr) // 3. 转换成uIntPtr类型,然后进行内存地址的计算(即:地址加一个字节,意味着取第二个索引位置的值) targetAddress := uintptr(ptr) + 2 // 4. 根据新地址,重新转换成Pointer类型 newPtr := unsafe.Pointer(targetAddress) // 5. Pointer对象转换为int8指针类型 value := (*int8)(newPtr) // 6. 根据指针获取值 fmt.Println("最终结果为:", *value) }