go指针

我的梦境 提交于 2020-01-10 22:05:51

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\n", ptr)  // ptr=0xc000062080  // ptr存的地址,但是ptr也有自己的地址
	fmt.Printf("ptr 的地址=%v\n", &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\n", &num)

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

}

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!