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)
}
