指针再理解--微妙

复制代码
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   hztech  阅读(15)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示