github.com/code-reading/golang@v0.0.0-20220303082512-ba5bc0e589a3/coding/unsafe/sizeof.go (about) 1 package main 2 3 import ( 4 "fmt" 5 "reflect" 6 "unsafe" 7 ) 8 9 func main() { 10 var a int32 11 var b = &a 12 fmt.Println(reflect.TypeOf(unsafe.Sizeof(a))) // uintptr 13 fmt.Println(unsafe.Sizeof(a)) // 4 14 fmt.Println(reflect.TypeOf(b).Kind()) // ptr 15 fmt.Println(unsafe.Sizeof(b)) // 8 16 } 17 18 /* 19 output 20 uintptr 21 4 22 ptr 23 8 24 */ 25 // 对于 a来说,它是int32类型,在内存中占4个字节,而对于b来说,是*int32类型,即底层为ptr指针类型,在64位机下占8字节。