Go 结构体的值传递和地址传递

package mainimport "fmt"type student struct {id   intname stringsex  byteage  intaddr string
}func test01(s student)  {s.id = 2fmt.Println("test s = ", s)
}func test02(p *student )  {p.id = 3fmt.Println("p = ", *p)
}func main() {s1 := student{id: 66, name: "后端码匠", age: 18}fmt.Println("s1 = ", s1)test01(s1) //这里进行的是值传递,形参无法变更实参fmt.Println("s1 = ", s1)test02(&s1) //这里传递的是结构体的地址,函数里的操作会直接操作地址指向的结构体
}

执行结果

s1 =  {66 后端码匠 0 18 }
test s =  {2 后端码匠 0 18 }
s1 =  {66 后端码匠 0 18 }
p =  {3 后端码匠 0 18 }

Go 结构体的值传递和地址传递相关推荐

  1. 结构体知识------值传递和址传递

    结构体知识------值传递和址传递 相关知识 区别 值传递 址传递 例子 作用 程序 运行结果 相关知识 普通变量(char a):a是变量名,对应内存空间的大小是sizeof(char),对应地址 ...

  2. c/c++ 实参、形参、值传递、地址传递的区别与关系 ---- 授人以鱼不如授人以渔

    函数的传递过程详解: 值传递:将原始对象的值传递给目标.程序会为目标开辟一个完全相同的内存空间,并将原始对象copy到目标中,之后对目标内存进行修改.所以目标的修改并不会影响原始对象,因为原始对象和目 ...

  3. C语言中函数参数传递的方式:值传递,地址传递

    ** C语言中函数参数传递的方式:值传递,地址传递 ** 值传递:将实参的值复制至形参的相应存储单元中,实参与形参占用不同存储单元,单向传递 地址传递:使用数组名或者指针作为函数参数,传递的是该数组的 ...

  4. 【❗划重点!C语言函数参数传递只有两种方式(值传递,地址传递),不支持“引用传递”!❗】

    引子 上篇文章<C语言函数传参の结构体数组篇>提到了C语言的函数参数传递方式,百度了一一一大圈,有说两种的,也有说三种的,简直把我搞晕了,"值传递和地址传递"是毫无疑问 ...

  5. C语言指针值传递和地址传递

    C语言传参分为值传传递和地址传递.C语言指针传参时,可以通过指针引用方式改变指针指向的值.改变变量,可以使用指针应用方式,改变地址,使用指针的指针引用方式. C语言值传递: 形参是实参的拷贝,改变形参 ...

  6. go在方法中修改结构体的值_golang修改结构体中的切片值方法

    golang修改结构体中的切片值方法,结构,切片,站长站,文章,相关文章 golang修改结构体中的切片值方法 易采站长站,站长之家为您整理了golang修改结构体中的切片值方法的相关内容. gola ...

  7. 结构体中元素的偏移地址与首地址

    结构体中元素的偏移地址与首地址 1.offsetof() 0指针的使用 2.container_of() 1.offsetof() #define offsetof(TYPE, MEMBER) ((s ...

  8. 值传递 和 地址传递 的区别(好多句话才可以说清)

    要知道什么是**值传递**和**地址传递**,首先要知道什么是**基本数据类型**和**引用类型**. Java的基本数据类型就八种(除了这八种之外都是引用类型):◆整型:byte(8位) short ...

  9. java 引用传递_详解java的值传递、地址传递、引用传递

    详解java的值传递.地址传递.引用传递 一直来觉得对值传递和地址传递了解的很清楚,刚才在开源中国上看到一篇帖子介绍了java中的值传递和地址传递,看完后感受颇深.下边总结下以便更容易理解. 按照以前 ...

最新文章

  1. java.lang.ArithmeticException: divide by zero
  2. 阿里云前端周刊 - 第 29 期
  3. 暑期集训1:C++STL 例1:UVA-10815
  4. 剑指offer:矩形覆盖
  5. esxi虚拟化集群_ProxmoxVE 之集群安装(V5.2)
  6. 360剑灵洪门崛起服务器维护,剑灵洪门崛起————【维护】8月1日更新维护公告...
  7. 如何修改SharePoint服务器场管理员帐户和密码
  8. Java-逻辑运算符、位运算符
  9. [ARM] [基础][编译]ARM的浮点功能历史分类和对应的编译选项
  10. django新建utils文件夹与导入方法
  11. 使用.NET Core 3.1构建Windows Worker服务以删除文件夹中的旧文件
  12. 江苏卫视益智类节目《一战到底》不益智
  13. C语言运行窗口中的暂停与清屏
  14. Python中的string和bytes的转换
  15. STM32寄存器操作端口模式CRL/CRH详解
  16. 我的理想计算机作文300字,我的理想作文300字(通用5篇)
  17. 解决复杂问题的思路-排除法
  18. 如何用三个月时间获得三年经验
  19. 阿里云服务器拼团活动-转发阿里云最新官方推荐拼团活动!
  20. 微软ERP家具行业解决方案

热门文章

  1. ECCV 2020 | 智能自动零售可行吗?AI安全应引起广泛关注!
  2. 今晚直播 | 清华大学NLP组秦禹嘉:基于自然语言解释的数据增强
  3. 一文读懂文本处理中的对抗训练
  4. 三味Capsule:矩阵Capsule与EM路由
  5. 匈牙利算法c语言代码,漫谈匈牙利算法
  6. 计算机专业可以用台式机吗,Win10X电脑操作系统可以装在台式机吗?
  7. Web安全——服务器端请求伪造(SSRF)
  8. 黑盒测试——自动饮料售货机
  9. JAVA——自定义排序(实现Comparable接口)
  10. PyCharm——导入模块时提示Unresolved Reference解决方案