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函數

相關文章
相關標籤/搜索