从go语言中找&和*区别详解

 更新时间:2020年06月23日 15:14:51   作者:梅老板000  
这篇文章主要介绍了从go语言中找&和*区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

*和&的区别 :& 是取地址符号 , 即取得某个变量的地址 , 如 ; &a*是指针运算符 , 可以表示一个变量是指针类型 , 也可以表示一个指针变量所指向的存储单元 , 也就是这个地址所存储的值 . 从代码中验证 :

先构建一个Rect类型 :

 

1. &是取地址符号, 取到Rect类型对象的地址

 

2. *可以表示一个变量是指针类型(r是一个指针变量):

 

3.*也可以表示指针类型变量所指向的存储单元 ,也就是这个地址所指向的值

 

4.查看这个指针变量的地址 , 基本数据类型直接打印地址

摘自其他博客 :

经常会见到: p . *p , &p 三个符号
p是一个指针变量的名字,表示此指针变量指向的内存地址,如果使用%p来输出的话,它将是一个16进制数。而*p表示此指针指向的内存地址中存放的内容,一般是一个和指针类型一致的变量或者常量。
而我们知道,&是取地址运算符,&p就是取指针p的地址。等会,怎么又来了个地址,它到底和p有什么区别?区别在于,指针p同时也是个变量,既然是变量,编译器肯定要为其分配内存地址,就像程序中定义了一个int型的变量i,编译器要为其分配一块内存空间一样。而&p就表示编译器为变量p分配的内存地址,而因为p是一个指针变量,这种特殊的身份注定了它要指向另外一个内存地址,程序员按照程序的需要让它指向一个内存地址,这个它指向的内存地址就用p表示。而且,p指向的地址中的内容就用*p表示。

到此这篇关于从go语言中找&和*区别详解的文章就介绍到这了,更多相关go语言&和*区别内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • golang切片拷贝的实现

    golang切片拷贝的实现

    在Golang中,切片的浅拷贝只复制指向对象的指针,而深拷贝则复制数据本身,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-10-10
  • RabbitMQ延时消息队列在golang中的使用详解

    RabbitMQ延时消息队列在golang中的使用详解

    延时队列常使用在某些业务场景,使用延时队列可以简化系统的设计和开发、提高系统的可靠性和可用性、提高系统的性能,下面我们就来看看如何在golang中使用RabbitMQ的延时消息队列吧
    2023-11-11
  • golang实现图像验证码的示例代码

    golang实现图像验证码的示例代码

    这篇文章主要为大家详细介绍了如何利用golang实现简单的图像验证码,文中的示例代码讲解详细,具有一定的学习价值,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-10-10
  • Go语言实现新春祝福二维码的生成

    Go语言实现新春祝福二维码的生成

    二维码现在是随处度可以看到,买东西,支付,添加好友只要你扫一扫就能完成整个工作,简单且方便。所以利用这个新春佳节做一个带着新春祝福的二维码吧
    2023-02-02
  • Golang的md5 hash计算操作

    Golang的md5 hash计算操作

    这篇文章主要介绍了Golang的md5 hash计算操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • 深入Golang的接口interface

    深入Golang的接口interface

    这篇文章主要介绍了深入Golang的接口interface,go不要求类型显示地声明实现了哪个接口,只要实现了相关的方法即可,编译器就能检测到,接下来关于接口interface的相关介绍需要的朋友可以参考下面文章内容
    2022-06-06
  • 利用Go语言搭建WebSocket服务端方法示例

    利用Go语言搭建WebSocket服务端方法示例

    这篇文章主要给大家介绍了利用Go语言搭建WebSocket服务端方法,文中通过示例代码介绍的非常详细,需要的朋友们可以参考借鉴,下面来一起看看吧。
    2017-04-04
  • Go语言中的值类型与引用类型的使用

    Go语言中的值类型与引用类型的使用

    Go语言中的数据类型可以分为值类型和引用类型,值类型包括基本和复合数据类型,特点是在传递时进行复制,保证数据的安全性,引用类型如slice、map等,传递的是引用副本,便于大型数据操作且提高性能,理解这些概念有助于编写更高效、安全的Go代码
    2024-09-09
  • go如何优雅关闭Graceful Shutdown服务

    go如何优雅关闭Graceful Shutdown服务

    这篇文章主要为大家介绍了go优雅关闭Graceful Shutdown服务详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05
  • Golang使用sqlite3数据库实现CURD操作

    Golang使用sqlite3数据库实现CURD操作

    这篇文章主要为大家详细介绍了Golang使用sqlite3数据库实现CURD操作的相关知识,文中的示例代码简洁易懂,有需要的小伙伴可以参考一下
    2025-03-03

最新评论