可以使用一些技巧来达到指针运算

// unsafe.Pointer
// uintptr
// unsafe.Pointer(uintptr(unsafe.Pointer(&p) + unsafe.Sizeof(p)))
vals := [4]int{10, 20, 30, 40}
start := unsafe.Pointer(&vals[0])
size := unsafe.Sizeof(0)
for i := 0; i < len(vals); i++ {
	item := *(*int)(unsafe.Pointer(uintptr(start) + size*uintptr(i)))
	fmt.Println(item)
}