欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Go语言指针使用分析与讲解

程序员文章站 2022-03-13 11:57:16
普通指针 和c语言一样, 允许用一个变量来存放其它变量的地址, 这种专门用于存储其它变量地址的变量, 我们称之为指针变量 和c语言一样, go语言中的指针无论是什么类型占用内存都一样(32...

普通指针

  • 和c语言一样, 允许用一个变量来存放其它变量的地址, 这种专门用于存储其它变量地址的变量, 我们称之为指针变量
  • 和c语言一样, go语言中的指针无论是什么类型占用内存都一样(32位4个字节, 64位8个字节)
  • 和c语言一样, 只要一个指针变量保存了另一个变量对应的内存地址, 那么就可以通过*来访问指针变量指向的存储空间

指向数组指针

  • 在c语言中, 数组名,&数组名,&数组首元素保存的都是同一个地址
  • 在go语言中通过数组名无法直接获取数组的内存地址
  • 在c语言中, 无论我们将数组名,&数组名,&数组首元素赋值给指针变量, 都代表指针变量指向了这个数组
  • 在go语言中, 因为只有数据类型一模一样才能赋值, 所以只能通过&数组名赋值给指针变量, 才代表指针变量指向了这个数组
  • 注意点:
    • go语言中的指针, 不支持c语言中的+1 -1和++ – 操作

指向切片的指针

  • 值得注意点的是切片的本质就是一个指针指向数组, 所以指向切片的指针是一个二级指针

Go语言指针使用分析与讲解

Go语言指针使用分析与讲解

指向字典指针

  • 与普通指针并无差异

指向结构体指针

  • go语言中指向结构体的指针和c语言一样
  • 结构体和指针
    • 创建结构体指针变量有两种方式
  • 利用结构体指针操作结构体属性

指针作为函数参数和返回值

  • 如果指针类型作为函数参数, 修改形参会影响实参
  • 不能将函数内的指向局部变量的指针作为返回值, 函数结束指向空间会被释放
  • 可以将函数内的局部变量作为返回值, 本质是拷贝一份

到此这篇关于go语言指针使用分析与讲解的文章就介绍到这了,更多相关go语言指针内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

相关标签: GO 指针