golang学习笔记004--指针

目录

  • 1.基本介绍
  • 2.使用细节
  • 3.值类型和引用类型

1.基本介绍

● 基本数据类型,变量存的就是值,也叫值类型
● 获取变量的地址,用&
● 指针类型,指针变量存的是一个地址,这个地址指向的空间存的才是值
● 获取指针类型所指向的值,使用*

	var i int = 10
	fmt.Println("i的地址=",&i)//i的地址= 0xc0000120a8
	
	var ptr *int = &i
	//ptr 是一个指针变量
	//ptr 的类型是 *int
	//ptr 本身的值 &i
	//*ptr 取指向的地址的值
	fmt.Printf("ptr=%v\n",ptr)//ptr=0xc0000120a8
	fmt.Printf("ptr 的地址=%v\n",&ptr)//ptr 的地址=0xc000006030
	fmt.Printf("ptr 指向的值=%v\n",*ptr)//ptr 指向的值=10

golang学习笔记004--指针_第1张图片

2.使用细节

● 值类型都有对应的指针类型,形式为 *数据类型
● 值类型包括:基本数据类型int系列,float系列,bool,string,数组和结构体struct

3.值类型和引用类型

● 值类型:基本数据类型int系列,float系列,bool,string,数组和结构体struct
  ○ 值类型:变量直接存储值,内存通常在栈中分配
● 引用类型:指针,slice切片,map,管道channal,interface
  ○ 引用类型:变量存储的是一个地址,这个地址对应的空间才是真正存储的数据,内存通常在堆中分配,当没有任何变量引用这个地址时,该地址对应的数据空间就成了一个垃圾,由GC来回收

你可能感兴趣的:(golang,golang,开发语言,后端)