标签搜索
MemoryCloud Blog

结构体指针

kennedy
2023-11-14 / 0 评论 / 25 阅读 / 正在检测是否收录...

指针初始化

直接使用ip是地址,*ip是取值(18)

func main() {
    var (
        a  int  = 18 //声明实际变量
        ip *int      //声明指针变量
    )
    ip = &a //把a的地址赋给ip指针
    fmt.Println("a变量的值是: ", a)
    fmt.Println("a变量的地址是: ", &a)
    fmt.Println("指针ip的值为: ", ip)
    fmt.Println("指针ip指向的值为: ", *ip)
}
//输出结果如下
a变量的值是:  18
a变量的地址是:  0xc0000aa058
指针ip的值为:  0xc0000aa058
指针ip指向的值为:  18

未取初始化的指针值默认为<nil>

func main() {
    var age *int
    fmt.Println(age)
}
<nil>

结构体类型指针

type Person1 struct {
    name string
}

func main() {
    p := Person1{
        "wang",
    }
    var po *Person1 = &p
    fmt.Println(po)
}
&{wang}

结构体初始化方法(==指针初始化推荐使用new函数==)

//1
func main() {
    p1 := &Person{}
}

//2
func main() {
    var  testPerson Person
    p2 := &testPerson
}

//3
func main() {
    var testPerson = new(Person)
    fmt.Println(testPerson.name)
}

可使用简洁定义

func main() {
    p := Person1{
        "wang",
    }
    po := &p
    fmt.Println(po)
    fmt.Printf("%T", po)
}
&{wang}
*main.Person1
0

评论

博主关闭了所有页面的评论