Go语言中*和&的区别


  1. 总结
  2. 示例

老是分不清*和&的区别,今天特意总结了一下。


1. 总结

  1. &是取地址符。
  2. *可以表示一个变量是指针类型,也可以表示指针类型变量所指向的存储单元,也就是这个地址所指向的值。

2. 示例

  1. 代码
type Person struct {name stringage int
}func main() {// & 是取地址符,取到Person类型对象的地址// 声明一个Person类型的结构体Bob := Person{"Bob", 20}fmt.Println("Bob:", Bob, " &Bob:", &Bob)// 声明一个Person类型的指针Lisa := &Person{"Lisa",30}fmt.Println("Lisa:",Lisa,"&Lisa:",&Lisa)// * 可以表达一个变量是指针类型var John *Person = &Person{name: "John",age:  40,}fmt.Println("John:",John," &John:",&John)// * 也可以表示指针类型变量所指向的存储单元,也就是这个地址所指向的值fmt.Println("*John:",*John)//函数参数是指针的话,会修改原来的数据changName(John)fmt.Println("*John:",*John)
}func changName(p *Person) {// p 是一个指针//如果是基本数据类型 [p.name = "China"] == [(*p).name = "China"]//其他类型则必须用 * 取值(*p).name = "China"p.age = 100
}
  1. 输出结果

Go语言中*和的区别相关推荐

  1. c语言中.和-区别,c语言中-和.的区别

    对于c语言中"->"和"."的区别总结如下: 1.A.B则A为对象或者结构体: 2.A->B则A为指针,->是成员提取,A->B是提取A ...

  2. 从go语言中找和*区别

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

  3. c语言exit和return区别,在fork和vfork中使用

    转自c语言exit和return区别,在fork和vfork中使用 exit函数在头文件stdlib.h中. 简述: exit(0):正常运行程序并退出程序: exit(1):非正常运行导致退出程序: ...

  4. C语言中的位运算符主要有哪些?逻辑右移与算术右移的区别?

    逻辑右移与算术右移的区别? 逻辑右移就是不考虑符号位,右移一位,左边补零即可. 算术右移需要考虑符号位,右移一位,若符号位为1,就在左边补1,:否则,就补0. 所以算术右移也可以进行有符号位的除法,右 ...

  5. c语言中指针中 - 和 。的区别?

    c语言中指针中 -> 和 .的区别? 例子1:比如有如下结构 typedef strut node{ int data;   strut node * next; } ListNode; Lis ...

  6. C语言中()和【】的区别?

    C语言中()和[]的区别? 1.注意()是初始化,[]是定义多个对象. 2.int* p = new int (100) 是创建一个int型的内存,并赋值为100; int *p = new int[ ...

  7. c语言中全局变量内存,C语言——全局变量和局部变量在内存中的区别——及编译后的内存分区【栈-堆-全局存储区-文字常量区-程序代码区】...

    目录: 一:全局变量 二:局部变量 三:C语言经过编译之后将内存分为以下几个区域 (1)栈(stack) (2)堆(heap) (3)全局(静态)存储区 (4)文字常量区 (5)程序代码区 四:区别 ...

  8. C语言中 *.c和*.h文件的区别!

    C语言中 *.c和*.h文件的区别!      这是HR面试我的一道题,没技术上含量,不过细想起来,还是C语言的最基本的知识!俗话说,目标决定动力,细节决定成败! C文件就是C语言系列的源文件,而H文 ...

  9. GUN ARM汇编中标号的引用在汇编和C语言中区别(monitor_flash_len = _bss_start - _armboot_start;)

    u-boot/cpu/xx/start.S中: _TEXT_BASE:  .word TEXT_BASE /*uboot映像在SDRAM中的重定位地址,我设置为0xa170 0000 */ .glob ...

最新文章

  1. 路由器级联后网速慢的原因分析和问题解决
  2. 安装epel源 失败:未知的名称或服务。 wget: 无法解析主机地址 “mirrors.aliyun.com”
  3. jap和java有关系吗_hibernate与jpa有什么区别和联系?
  4. html如何让图片跟字体重叠,CSS设置图片与文字的间距
  5. 2 安装失败_写bug日记2:PYTORCH GEOMETRIC安装失败的问题(未解决)
  6. POJ 3252 Round Numbers
  7. 软齿面主要失效形式_齿轮4种常见故障原因,如何采取预防措施,避免齿轮失效...
  8. (转载的)C#using的用法
  9. 产品部和业务部门是什么关系
  10. 如何越狱苹果TV2在iOS 4.2使用PwnageTool
  11. iOS高级面试题及部分答案
  12. 输入十个国名 要求按字母顺序输出C语言,用C语言编程实现国家名称按序输出,要求键盘输入五个国家的名字,按字母顺序排列打印输出。...
  13. 数字图像处理11:阈值分割(基本全局阈值处理,Otsu 的最佳全局阈值,图像平滑改善全局阈值处理,图像分块的可变阈值)
  14. 资产管理业务和财富管理
  15. 改进Python文字小游戏(4)
  16. pythonocc_PythonOCC基础使用:点的性质(glsl定义)
  17. xt800远程对方计算机桌面是黑的,桌面远程对方的电脑黑屏怎么办
  18. 在ubuntu上安装像金山词霸的词典。
  19. tooth的用法_tooth是什么意思_tooth怎么读_tooth翻译_用法_发音_词组_同反义词_牙-新东方在线英语词典...
  20. 【学院新生研讨】关于手机使用情况的调研报告

热门文章

  1. Saltstack-6:模块
  2. springboot 入门教程(1)
  3. Exchange 2016 批量添加X500地址,解决迁移后退信的问题
  4. pl/sql编程基础
  5. Django apache2 安装配置
  6. 要找工作了,拿什么拯救你——我的能力
  7. 2021牛客多校4 - Rebuild Tree(树形dp)
  8. java怎么把数据封进对象里_(Java)想把数组中一条一条的数据全部放入对象中去..要怎么做呢...
  9. UVA - 11882Biggest Number dfs+期望剪枝
  10. EOJ_1020_铁路调度