指针再理解--微妙

package main

import "fmt"

type Student struct {
    name string
    id   int
    age  int
    sex  string
}

func updateStu(stu *Student) {
    stu.age = 21
}

func main() {
    var stu Student = Student{id: 101, name: "多啦A梦", age: 100, sex: ""}

    var p *Student //指针类型
    p = &stu //对象实例的地址 给 指针类型的变量赋值

    //通过结构体指针间接操作结构体成员
    //(*p).name="大熊"
    //通过指针可以直接操作结构体成员
    p.name = "静香"
    p.age = 18
    p.sex = ""

    fmt.Println(stu)
  //{静香 101 18 女} 
  updateStu(p) fmt.Println(*p)   
  //{静香 101 21 女} 
  fmt.Println((*p).name) 
  //静香
  fmt.Println(p.name) 
  //静香
}

 

posted on 2023-02-20 17:32  hztech  阅读(14)  评论(0编辑  收藏  举报

导航