var a *int
*a = 258 //会报错
fmt.Printf("a:%p---%#v\n", &a, a)
//看上面代码只声明了int类型的指针a,并没有给它分配内存(类似与java中的非静态类,没使用new开辟内存空间,你无法访问它的属性和方法)这时候你把代码改成这样
var a *int
a = new(int)//开辟一块int类型的地址(地址就是指针)给a
*a = 258 //把258赋值给地址是a的变量
fmt.Printf("a:%p---%#v\n", &a, a)
type gg struct {
name string
age int
}
func main() {
var k = new(gg) //结构体使用new来开辟内存空间
fmt.Printf("%p", k)
k.age = 25
gl(k)
}