GO语言指针有那些限制

GO语言指针有那些限制

GO 语言的指针
一个指针变量本身存会计的只是一个内存地址
一个内存地邗在32位系统上占4个字节,在64位系统上占8个字节
内存地址一般用整数的16进制来表示

当一个变量声明的时候,GO运行时将此变量开辟一段内存,此内存的起始地址即为此变量的地址

	func main(){x:=new(int) //声明指针y:=x//将x的地址值赋值给ytmp:=5x=&tmp //将tmp的地址值赋值给xfmt.Println("x=",*,"y=",y,*y)}

在这里插入图片描述
多维指针
在这里插入图片描述
GO语言中哪些值不可被寻址
映射的元素、字符串的字节元素、常量包级别的函数以及用作函数值的方法等

如何获取一个指针值
内置函数new 、直接使用&操作符

func main()
{a = new([3]int)fmt.Println(a)b:=3fmt.Println(&b)
}

GO语言指针的限制
1.GO提针不支持直接进行算术运算

func main()
{i:=int64(5)p:=&ip++ //nvalid operation: p++ (non-numeric type *int64)atomic.AddInt64(p,1)}

2.一个指针类型的值不能被随意转 换为另一个指针类型
指针类型转换的条件
底层类型一致且有一个是无名类型
都是无名类型,且他们的基为类型的底层一致

func main() {type Myint int32type P1 *int32type P2 *Myintvar x1 P1var x2 *int32x1 = x2 //隐式转换//fmt.Println(x1, x2)x2 = x1 //隐式转换var x3 *Myintx4 := (*int32)(x3) //显示转换x5 := (*Myint)(x2) //*Myint显示转换到*int32fmt.Println(x4, x5)//var x6 P2//x6 = x1                         //P1不能直接隐式转换到P2,编译不通过//x6 = (*Myint)(x1)               //也不能直接显示转换,编译不通过//x6 = P2((*Myint)((*int32)(x1))) //P1经过3层显示转换到P2//fmt.Println(x6)//
}

3.一个指针不能随意跟其他指针类型的值进行比较
指针比较需要满足的条件
这两个指针类型相同
这两个指针之前可以隐式转换

	func main() {type Myint int32type P1 *int32type P2 *Myintvar x1 P1var x2 *int32x1 = x2 //隐式转换//fmt.Println(x1, x2)x2 = x1 //隐式转换var x3 *Myintx4 := (*int32)(x3) //显示转换x5 := (*Myint)(x2) //*Myint显示转换到*int32fmt.Println(x4, x5)//var x6 P2//x6 = x1                         //P1不能直接隐式转换到P2,编译不通过//x6 = (*Myint)(x1)               //也不能直接显示转换,编译不通过//x6 = P2((*Myint)((*int32)(x1))) //P1经过3层显示转换到P2//fmt.Println(x6)////fmt.Println(x1 == x2) // 可以比较//fmt.Println(x2 == x3) //不能比较//fmt.Println(x1 == x6) //不能比较//fmt.Println(x2 == x6) //不能比较fmt.Println("unsafe.Pointer:", unsafe.Pointer(x2) == unsafe.Pointer(x3)) //可以比较
}

4.一个指针不能随意被赋值给其它任意类型的指针值
上术限制可以能过unsafe标准包中的非类型安全指针(unsafe.Pointer)来打破

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/450800.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

遥感技术助力生态系统碳储量、碳收支、碳循环等多领域监测与模拟:森林碳储量,城市扩张,夜间灯光数据,陆地生态系统,大气温室气体监测等

目录 专题一 双碳视角下遥感技术的研究方向 专题二 生态系统碳库的遥感估算—以森林碳储量为例 专题三 生态系统碳收支的遥感模拟—以京津冀地区为例 专题四 土地利用变化碳排放效应的遥感监测—以城市扩张为例 专题五 区域能源消耗碳排放空间格局模拟—基于夜间灯光数据 …

为什么你总碰到渣男?伯克森悖论

内容预告 为什么有些女生总觉得自己总是遇到渣男?难道是我具备了“吸引渣男的体质”?,还是“好男人都绝了吗?"。今天,我们通过因果推断中的伯克森悖论,结合心理学中的认知偏差和选择偏差,来解析这个令人困惑的…

【word】页眉横线无法取消

小伙伴们日常想在页眉里加横线,直接双击页眉,然后在页眉横线里选择自己喜欢的横线样式就可以了。 但今天我遇到的这个比较奇特,有些页有这个横线,有些页没有,就很奇怪。 最后排查完,发现是只有标题2的页…

15分钟学Go 第4天:Go的基本语法

第4天:基本语法 在这一部分,将讨论Go语言的基本语法,了解其程序结构和基础语句。这将为我们后续的学习打下坚实的基础。 1. Go语言程序结构 Go语言程序的结构相对简单,主要包括: 包声明导入语句函数语句 1.1 包声…

5、JavaScript(三)

20.this对象 对于要绑定的多个对象的事件内容相同时可以使用循环来绑定&#xff0c;注意这时要使用this对象拿到当前调用函数的对象的属性和方法&#xff0c;不能直接使用循环变量作为角标。 1 this 对象基础内容 <!-- 大坑坑坑坑&#xff01;&#xff01;&#xff01;&am…

arm架构ceph pacific部署

背景 合作伙伴实验室的华为私有云原来使用单点的nfs做为存储设备&#xff0c;现有两方面考量&#xff0c;业务需要使用oss了&#xff0c;k8s集群及其他机器也需要一套可扩展的分布式文件系统 部署ceph 初始机器配置规划 IP配置主机名Role10.17.3.144c8g1T数据盘ceph-node01…

录屏不再难!四款免费电脑桌面录屏工具测评报告

作为一个办公室文员&#xff0c;我经常需要录制一些操作演示视频或者会议记录。最近&#xff0c;我尝试了四款免费的电脑桌面录屏工具&#xff1a;福昕录屏大师、转转大师录屏、爱拍录屏和Screen Studio。今天就来跟大家分享一下我的使用体验&#xff0c;希望能帮到和我有同样需…

vue综合指南(六)

​&#x1f308;个人主页&#xff1a;前端青山 &#x1f525;系列专栏&#xff1a;Vue篇 &#x1f516;人终将被年少不可得之物困其一生 依旧青山,本期给大家带来Vuet篇专栏内容:vue综合指南 目录 101、Vue 框架怎么实现对象和数组的监听&#xff1f; 102、Proxy 与 Object.d…

AntV X6自定义连接线样式(Vue3+TypeScript)

效果图如下&#xff1a;&#xff08;连接线是有动画的&#xff0c;模拟数据传输特效&#xff09; 核心代码&#xff1a; 在创建画布的时候即可设置连接线样式&#xff0c;通过createEdge属性即可实现&#xff0c;代码如下&#xff1a; connecting: {snap: {radius: 50, //自动吸…

工业相机详解及选型

工业相机相对于传统的民用相机而言&#xff0c;具有搞图像稳定性,传输能力和高抗干扰能力等&#xff0c;目前市面上的工业相机大多数是基于CCD&#xff08;Charge Coupled Device)或CMOS(Complementary Metal Oxide Semiconductor)芯片的相机。 一&#xff0c;工业相机的分类 …

Vivado HLS学习

视频链接: 6课&#xff1a;数据类型的转换_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1bt41187RW?spm_id_from333.788.videopod.episodes&vd_sourcea75d5585c5297210add71187236ec90b&p6 目录 1.数据类型的转换 2.自动类型转换 2.1隐式数据转换 2.2…

Windows安装Minio服务器端

Windows安装Minio服务器端 Windows安装Minio服务器端启动minio server将minio封装成系统服务默认账号密码常用参数 常见问题Minio为客户提供NFS调整minio文件分享时长设置“桶”为公开&#xff0c;如图设置即可 使用minio命令行客户端配置mcmc命令行常用方法创建bucket查看buck…

离散数学-逻辑与证明基础1.4(谓词和量词)

谓词 1.4.2 谓词 涉及变量的语句&#xff0c;例如&#xff1a; “ x > 3 x > 3 x>3”&#xff0c;“ x y 3 x y 3 xy3”&#xff0c;“ x y z x y z xyz” 以及 \quad “Computer x x x is under attack by an intruder” \quad “Computer x x x is f…

安装CentOS 8镜像和创建CentOS 8虚拟机教程

一、安装虚拟机 网上查找教程&#xff0c;我用的是VMware 17 二、下载CentOS 8镜像 1.阿里云下载CentOS 8镜像 centos安装包下载_开源镜像站-阿里云 (aliyun.com) 选择需要下载的版本&#xff0c;(建议)下载dvd1版本的iso&#xff08;也有下载boot版本的iso&#xff0c;创…

【进阶OpenCV】 (18)-- Dlib库 --人脸关键点定位

文章目录 人脸关键点定位一、作用二、原理三、代码实现1. 构造人脸检测器2. 载入模型&#xff08;加载预测器&#xff09;3. 获取关键点4. 显示图像5. 完整代码 总结 人脸关键点定位 在dlib库中&#xff0c;有shape_predictor_68_face_landmarks.dat预测器&#xff0c;这是一个…

【汇编语言】寄存器(内存访问)(二)—— DS和[address]

前言 &#x1f4cc; 汇编语言是很多相关课程&#xff08;如数据结构、操作系统、微机原理&#xff09;的重要基础。但仅仅从课程的角度出发就太片面了&#xff0c;其实学习汇编语言可以深入理解计算机底层工作原理&#xff0c;提升代码效率&#xff0c;尤其在嵌入式系统和性能优…

day46|72. 编辑距离647. 回文子串516.最长回文子序列 5 最长回文子串

文章目录 前言72. 编辑距离思路方法一647. 回文子串思路方法一方法二516.最长回文子序列思路方法一5 最长回文子串总结前言 72. 编辑距离 思路 总体思路:dp定义直接为操作数,递推公式分情况讨论,如果两个元素相等,那操作数不变;如果不相等,那么操作数就会改变–三种情况…

免费证件照app哪个好?哪个效果比较好?

在日常生活中&#xff0c;证件照的需求无处不在&#xff0c;尤其是在求职、签证和考试等场合。 许多人可能会觉得制作证件照需要花费不少费用&#xff0c;但其实市场上有许多免费的证件照制作软件&#xff0c;能够轻松满足你的需求。 这些软件不仅操作简单&#xff0c;更具备…

如何在word里面给文字加拼音?

如何在word里面给文字加拼音&#xff1f;在现代社会&#xff0c;阅读已经成为了我们日常生活中不可或缺的一部分。尤其是在学习汉语的过程中&#xff0c;拼音的帮助显得尤为重要。为了帮助大家更好地理解和掌握汉字的发音&#xff0c;许多教师和学生都希望能够在Word文档中为文…

什么是网络代理

了解网络代理 网络代理是一种特殊的网络服务&#xff0c;它允许一个网络终端&#xff08;通常指客户端&#xff09;通过这个服务与另一个网络终端&#xff08;通常指服务器&#xff09;进行非直接的连接。网络代理服务器位于发送主机和接收主机之间&#xff0c;接收网络请求&a…