七叶笔记 » golang编程 » Golang基础之指针

Golang基础之指针

  1. 值类型-变量存的是值本身:基本数据类型 int系列,float系列,bool,string,数组和结构体,值类型都有对应的指针类型(形式为:*数据类型)
  2. 引用类型-变量存的是内存地址:指针,slice,map,channel,interface等都是引用类型

1、获取变量的地址,用&,

 var num int = 10
fmt.Println("num的内存地址是:",#)  

2、指针类型,指针变量存的是一个内存地址,这个地址指向的内存空间保存的才是具体值

 var num int = 10

var ptr *int

ptr = #

// 以上两行,可以写成var ptr *int = #

ptr 是一个变量名称,指针变量

ptr的类型是*int // *代表指针

# 获取变量num的内存地址

ptr 这个指针变量保存的就是变量num的内存地址  

3、获取指针类型变量所指向的值,用*,格式: *指针变量 (即*指针地址)

 fmt.Printf("prt 指向的值是%v", *ptr)  

要区分指针类型和取值操作。

4、创建指针的另一种方法-new()函数

new()函数会在堆上分片一块内存空间,并返回这块内存的地址

 s = new(string)

fmt.Println(s) // 内存地址

*s = "tom" // 内存存值

fmt.Println(*s) // 取值

// 等价于

var s string

s = "tom"

ss := &s

fmt.Println(*ss)  

相关文章