扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
tips: *号,可以指向指针类型内存地址上的值,号,可以获取值类型的内存地址
站在用户的角度思考问题,与客户深入沟通,找到新安网站设计与新安网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站制作、网站建设、企业官网、英文网站、手机端网站、网站推广、域名与空间、虚拟空间、企业邮箱。业务覆盖新安地区。
每一个变量都有内存地址,可以通过变量来操作内存地址中的值,即内存的大小
go语言中获取变量的内存地址方法:通过 符号可以获取变量的地址
定义:普通变量存储的是对应类型的值,这些类型就叫值类型
变量b,在内存中的地址为:0x1040a124,在这个内存地址上存储的值为:156
定义:指针类型的变量存储的是⼀个地址,所以⼜叫指针类型或引⽤类型
b 是值类型,它指向的是内存地址上的值
a是指针类型,它指向的是b的内存地址
指针类型定义,语法: var 变量名 *类型
指针类型在定义完成后,默认为空地址,即空指针(nil)
在定义好指针变量后,可以通过***** 符号可以获取指针变量指向的变量
在这里的 *a 等价于 b,通过修改 *a ,最终修改的是值类型b的值
这里a,d是值类型,b,c是指针类型
d就相当于把a内存地址上值,在内存中从新开辟了一块空间存储,d和a互不影响
b,c相当于指向了a的内存地址,当使用*号引用出内存地址上的变量上,修改值得,a的值也会跟着改变
修改参数
值类型
指针类型
引用类型
chan
类型零值
总结 :在Go语言中, 函数的参数传递只有值传递 ,而且传递的实参都是原始数据的一份拷贝。如果拷贝的内容是值类型的,那么在函数中无法修改原始数据,如果拷贝的内容是指针(或者可以理解为引用类型),那么可以在函数中修改原始数据。
Go语言里面的指针和C++指针一样,都是指向某块内存的地址值,可以解引用,不同只是在于C++里可以直接对指针做算术运算而Go里面不行。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流