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

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

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
}

 

 

 

待补充:ide

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

相关文章
相关标签/搜索