【go】指针的风骚操作(结合unsafe.point与uintptr)
指针是具有类型的 总所周知,声明的变量都是有具体类型的,而对于存储指针的变量是否有类型,有时是一头雾水,在此做一个小总结,指针是具有类型的。 就如: var c int fmt.Println(reflect.TypeOf(c)) d := &c fmt.Println(reflect.TypeOf(d)) 结果: int *int 那可能一些人就会有疑问,指针既然具有类型,那指针之间可以进行类型转换吗。就如下面一样操作 #(*Type)ptr a := (*int)(&xx) 在Go 的指针是不支持指针运算和转换 下面就详细说一下指针类型怎么互相转换 不同类型指针的互相转换 go语言是强语言类型,不同类型,不可以跨类型计算、赋值等操作。 如下: num := 2 p := &num fp ...阅读全文