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


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

package main import ( "fmt" ) func main(){ num1 := 100 fmt.Printf("num1的类型是%T,num1的值为%v,num1的地址是%v\n", 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\n", 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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM