GO 指针数据类型的使用
转载请注明出处:
在Go语言中,指针类型允许直接访问和修改某个变量的内存地址。通过使用指针,我们可以在函数之间共享数据或者在函数内部修改外部变量的值。
以下是关于Go语言指针类型的一些重要语法和示例:
定义指针变量:
- 使用
*表示指针类型,并将其放置在变量类型前面。例如:var ptr *int声明了一个指向整数类型的指针变量ptr。
- 使用
取址操作符(&):
- 使用
&操作符可以获取变量的内存地址。例如:x := 10; ptr := &x将x的内存地址分配给指针变量ptr。
- 使用
解引用操作符(*):
- 使用
*操作符可以获取指针所指向的值。例如:y := *ptr表示获取指针ptr所指向的值,并将其赋给变量y。
- 使用
下面是一个示例代码,演示了Go语言中指针类型的使用:
package main
import "fmt"
func changeValue(ptr *int) {
*ptr = 20 // 修改指针所指向的值为20
}
func main() {
x := 10
fmt.Println("初始值:", x) // 输出: 初始值: 10
ptr := &x // 获取x的内存地址并分配给指针ptr
changeValue(ptr) // 传递指针作为参数,修改指针所指向的值
fmt.Println("修改后的值:", x) // 输出: 修改后的值: 20
}
在上面的示例中,声明了一个指针变量ptr并将x的内存地址赋给它。然后,通过调用changeValue函数并传递ptr作为参数来修改x的值。由于传递的是指针而不是值的副本,因此在函数内部对指针的修改也会影响到外部变量。
GO 指针数据类型的使用的更多相关文章
- WM_COPYDATA传送指针数据类型的问题
WM_COPYDATA传送指针数据的问题 var cdds:TcopyDataStruct; strAnsi:string;begin cdds:=PCopyDataSt ...
- oc数据类型
数据类型:基本数据类型.指针数据类型 基本数据类型:数值型.字符型(char).布尔型.空类型(void)指针数据类型:类(class).id数值型:整数类型int.浮点型float.doublec和 ...
- C语言:指针的几种形式二
一.const指针 1.const int* p和int const* p:两者意义是相同的.指向的内容是只读数据,不可以q改变:但是指向的地址可以改变. 2.int* const p:必须先对指针初 ...
- C学习笔记 - 指针
指针与数组 ,,,,}; int *p; p = a; printf("*a = %d\n",*a); printf("*p = %d\n",*p); prin ...
- 深入理解C指针之一:初识指针
原文:深入理解C指针之一:初识指针 简单来说,指针包含的就是内存地址.理解指针关键在于理解C的内存管理模式.C里面有三种内存: ①.静态全局内存(生命周期从程序开始到程序结束,全局变量作用域是全局,静 ...
- iOS开发-OC语言 (一)oc数据类型
分享一套以前学习iOS开发时学习整理的资料,后面整套持续更新: oc数据类型 数据类型:基本数据类型.指针数据类型 基本数据类型:数值型.字符型(char).布尔型.空类型(void) 指针数据类型: ...
- OC比C中,新增的数据类型
布尔型 BOOL 以及 boolean 1)这两者都是判断类型 2)在C底层这两者都是一个 char类型 占一个字符大小 3)BOOL 的取值为 YES / NO 其中NO =0 YES =1 4)b ...
- Day8 函数指针做函数参数
课堂笔记 课程回顾 多态 virtual关键字 纯虚函数 virtual func() = 0; 提前布局vptr指针 面向接口编程 延迟绑定 多态的析构函数的虚函数. ...
- C语言指针入门
指针指包含地址 声明指针: int num:声明整数 int *num:声明指针,下面的声明也是等价的,空格的使用指示个人爱好 int* num; int * num; int *num; in ...
- golang之指针
先上代码 package main import "fmt" type myInt int //匿名函数 //值的接收 //指针的接收 //*myint表示myInt的指针类型 / ...
随机推荐
- Python 潮流周刊第 31 期(摘要)
本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章.教程.开源项目.软件工具.播客和视频.热门话题等内容.愿景:帮助所有读者精进 Python 技术,并增长职 ...
- 流畅的orm让我发现我抵触的是mybatis而不是java
流畅的orm让我发现我抵触的是mybatis而不是java 背景介绍 开发.net 也快10年了,到第三年的时候我已经渐渐瓶颈了,于是我在网上找各种资料但是大部分c#资料全是皮毛资料,稍微深一点点就再 ...
- Charles对Android手机Https请求的抓包
Charles对Android手机Https请求的抓包 • 前情提要: 本文只是对android手机进行抓包的描述,由于android手机系统原因,android7.0系统及以上需要在app中配置证书 ...
- 华企盾DSC远程桌面、实时监控连接不上常见处理方法
1.检测策略是否勾选了远程桌面需要客户端确认或者勾选了客户端显示"允许远程维护"选项 2.检查客户端5097目录是否有MgrDll.dll.uvnserver.exe文件(是否被杀 ...
- Python 中 key 参数的含义及用法
哈喽大家好,我是咸鱼 我们在使用 sorted() 或 map() 函数的时候,都会看到里面有一个 key 参数 其实这个 key 参数也存在于其他内置函数中(例如 min().max() 等),那么 ...
- idea2020.1.3汉化包报错问题
已解决:idea2020.1.3汉化包报错问题 问题描述:插件市场提供的版本不对.不兼容,所以需要手动下载安装 这里附上文件 https://wwsi.lanzouq.com/b03czdtwf 密码 ...
- OpenEuler22.03安装PostgreSQL15.5并配置一主二从
环境准备 序号 IP 标识(hostname) CPU/内存配置 系统盘 数据盘 1 192.168.8.190 pg01 8C+16G 80G 500G 2 192.168.8.191 pg02 8 ...
- Programming Abstractions in C阅读笔记:p197-p201
<Programming Abstractions in C>学习第64天,p196-p201总结. 一.技术总结 很难,唯有继续往下看才能让其变容易. 二.英语总结 1.psycholo ...
- NebulaGraph实战:2-NebulaGraph手工和Python操作
图数据库是专门存储庞大的图形网络并从中检索信息的数据库.它可以将图中的数据高效存储为点(Vertex)和边(Edge),还可以将属性(Property)附加到点和边上.本文以示例数据集basket ...
- 最新系统MacOs13 Ventura(M1/M2芯片) + Parallels Desktop 18(PD18史上最强虚拟机)永久使用攻略
众神殿内,高朋满座,胜友如云,Vmware.VirtualBox.Utm等虚拟机大神群英荟萃,只见位于C位王座上的Parallels怅惘抬头,缓缓逡巡,睥睨群小,目光到处,无人敢抬头对视. 是的,如果 ...