关于golang:Golangpointer

  1. 指针
    特点:Go语言不存在指针操作,波及两个符号:& 与 *,即”取地址”与”依据地址取值”
  2. 分配内存的函数:new 与 make
    make: 只作用于slice、map、chan三种援用类型的内存创立,所以返回的值并不是指针,而是这三个类型自身。
    new: 个别是给根本数据类型申请内存的,如int,string,返回的是对应类型的指针,如int,string。
package main

import "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,是根底数据类型自身

}

运行后果:

0xc00001a080
100
0xc00001a088
*int
[]int

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理