- 指针
特点:Go语言不存在指针操作,波及两个符号:& 与 *,即"取地址"与"依据地址取值" - 分配内存的函数:new 与 make
make: 只作用于slice、map、chan三种援用类型的内存创立,所以返回的值并不是指针,而是这三个类型自身。
new: 个别是给根本数据类型申请内存的,如int,string,返回的是对应类型的指针,如int,string。
package mainimport "fmt"func main() { //*与&的应用 var a = 100 p := &a fmt.Println(p) b := *p fmt.Println(b) //make 与 new var a1 = new(int) fmt.Println(a1) fmt.Printf("%T", a1) //返回值类型是*int fmt.Println() var a2 = make([]int, 3, 3) fmt.Printf("%T", a2) //返回值类型是int,是根底数据类型自身}
运行后果:
0xc00001a0801000xc00001a088*int[]int