• Golang内存分配内置函数之new函数


    new函数用来分配内存,主要分配值类型,比如int、float32、struct等,返回的是指针

    package main
    import (
        "fmt"
    )
    
    
    func main(){
        num1 := 100    
        fmt.Printf("num1的类型是%T,num1的值为%v,num1的地址是%v
    ", num1, num1, &num1)
        //结果---num1的类型是int,num1的值为100,num1的地址是0xc042052058
        //内存分配说明:
        //内存里会开辟一个空间,num1指向这个空间,这个空间了里放了值100,那么num1的地址就是这块空间的地址
        
        
        num2 := new(int)
    
        //*num2 = 100
        fmt.Printf("num2的类型是%T,num2的值为%v,num2的地址是%v
    ", num2, num2, &num2)
        //结果---num2的类型是*int,num2的值为0xc0420520a0,num2的地址是0xc042072020
    
        //内存分配说明:
        //num2本身是指针类型,num2会指向一个空间,但是这个空间里的值是一个地址,就是0xc0420520a0,但是这个
        //空间本身也有一个地址,地址就是0xc042072020,而0xc042072020这个地址默认情况的值是个0,因为没有赋值
        
        //进一步说明
        fmt.Printf("num2的类型是%T,num2的值为%v,num2的地址是%v,num2这个指针指向的值是%v", num2, num2, &num2, *num2)
        //结果---num2的类型是*int,num2的值为0xc0420520a0,num2的地址是0xc042072020,num2这个指针指向的值是0
    }

    待补充:

    make:用来分配内存,只要分配引用类型,比如chan、map、slice

  • 相关阅读:
    《20170914-构建之法:现代软件工程-阅读笔记》
    《结对-贪吃蛇游戏-开发环境搭建过程》
    《结对-贪吃蛇游戏-设计文档》
    《自我介绍》
    对于软件工程的期望
    GIT的使用方法
    结对-贪吃蛇-需求分析
    团队-井字棋-需求分析
    团队-井字棋-成员简介及分工
    新的目标
  • 原文地址:https://www.cnblogs.com/wt645631686/p/9558566.html
Copyright © 2020-2023  润新知