go指针

Posted yzg-14

tags:

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

1. 指针类型

技术图片

package main
import (
	"fmt"
)

// 演示golang中指针类型
func main() {

	// 基本数据类型在内存布局
	var i int = 10
	// i 的地址是什么,&i  // & 地址符
	fmt.Println("i的地址=", &i)  // i的地址= 0xc000062080

	// 下面的 var ptr *int = &i
	// 1. ptr 是一个指针变量
	// 2. ptr 的类型 *int
	// 3. ptr 本身的值&i
	var ptr *int = &i
	fmt.Printf("ptr=%v
", ptr)  // ptr=0xc000062080  // ptr存的地址,但是ptr也有自己的地址
	fmt.Printf("ptr 的地址=%v
", &ptr)  // ptr 的地址=0xc00008e020ptr 指向的值=10
	fmt.Printf("ptr 指向的值=%v", *ptr)  // ptr 指向的值=10  // *ptr取的是存的地址所指向的值

} 

案例

package main
import "fmt"

func main() {

	var num int = 9
	fmt.Printf("num address=%v
", &num)

	var ptr *int
	ptr = &num
	*ptr = 10  // 这里修改时,会到num的值变化
	fmt.Println("num =" , num)

}

技术图片

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

解决go: go.mod file not found in current directory or any parent directory; see ‘go help modules‘(代码片段

你知道的Go切片扩容机制可能是错的

更新:C++ 指针片段

片段中的 EditText 上的空指针异常 [重复]

Go语言技巧之正确高效使用slice(听课笔记总结--简单易懂)

Go语言技巧之正确高效使用slice(听课笔记总结--简单易懂)