Go 指针运算

Posted 码小余の博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go 指针运算相关的知识,希望对你有一定的参考价值。

package main

import (
	"fmt"
	"unsafe"
)

func main() 
	var intArr [3]int // int字节数根据电脑来分配(64位的8字节,32位的4字节)
	intArr[0] = 1
	intArr[1] = 3
	intArr[2] = 10
	fmt.Println(intArr)

	fmt.Printf("intArr的地址=%p intArr[0] 地址%p intArr[1] 地址%p intArr[2] 地址%p\\n", &intArr, &intArr[0], &intArr[1], &intArr[2])

	// 根据 intArr[0] 指针地址获取 intArr[1] 的指针地址,多以同样能获取到 intArr[1] 指针位置的值
	first_unsafe_point := unsafe.Pointer(&intArr[0])
	uintptr_first_unsafe_point := uintptr(first_unsafe_point) + 8
	fmt.Println("intArr[0]位置指针 + 8 后的指针位置:", uintptr_first_unsafe_point)
	uintptr_second_unsafe_point := unsafe.Pointer(uintptr_first_unsafe_point)
	fmt.Println("intArr[0]位置指针 + 8 后的指针位置,转成unsafe_Pointer类型:", uintptr_second_unsafe_point)
	pb := (*int)(uintptr_second_unsafe_point)
	fmt.Println("uintptr_second_unsafe_point指针位置的值:", *pb)

以上是关于Go 指针运算的主要内容,如果未能解决你的问题,请参考以下文章

Go 指针运算

Go语言 基础 指针

Go语言基础之指针

go语言学习笔记 — 基础 — 基本数据类型 — 指针:一文详解go指针

Go 语言的指针类型和 string 类型

go4--break,continue + 标签