当前位置: 首页 > news >正文

Go语言--复合类型之指针与数组

分类

在这里插入图片描述

指针

指针是一个代表着某个内存地址的值。这个内存地址往往是在内存中存储的另一个变量的值的起始位置。Go 语言对指针的支持介于 Java 语言和 C/C++语言之间,它既没有想 Java 语言那样取消了代码对指针的直接操作的能力,也避免了 C/C++语言中由于对指针的滥用而造成的安全和可靠性问题。

基本操作-和C相同

在这里插入图片描述
保存某个变量的地址,需要指针类型*int 保存int的地址,**int 保存 *int 地址
在这里插入图片描述
在这里插入图片描述

Go语言虽然保留了指针,但与其它编程语言不同的是:

  • 默认值 nil,没有 NULL 常量
  • 操作符"&”取变量地址,“*”通过指针访问目标对象
  • 不支持指针运算,不支持"->“运算符,直接用”.”访问目标成员,同样的不能操作没有合法指向的指针变量。

new

动态分配空间
在这里插入图片描述

  • 同样的,也可以自动推导类型q := new(int)
    注意:go语言无需向c++语言一样,动态申请的空间还需要自己手动释放。go语言中,我们只需使用new()函数,无需担心其内存的生命周期或怎样将其删除,因为Go语言的内存管理系统会帮我们打理一切。

普通变量做函数参数

在这里插入图片描述

指针做函数参数

在这里插入图片描述
在这里插入图片描述
这些都和C相同。

数组

数组是指一系列同一类型数据的集合。数组中包含的每个数据被称为数组元素(element)一个数组包含的元素个数被称为数组的长度。
数组长度必须是常量,且是类型的组成部分。[2]int 和[3]int 是不同类型。
语法var id [50]int
在这里插入图片描述

  • 操作数组元素,是通过0-len()-1的下标进行操作的,下标可以是常量也可以是变量。
  • 数组初始化—全部初始化 var a [5]int=[5]int{1,2,3,4,5}
  • 自动推导类型 b:=[5]int{1,2,3,4,5}
  • 数组初始化—部分初始化,没有初始化的元素自动赋值为0
  • 指定某个元素初始化 d := [5]int{2: 10, 4: 20}
    在这里插入图片描述

二维数组

在这里插入图片描述

  • 初始化,全部初始化以及部分初始化

在这里插入图片描述

数组比较和赋值

只支持==以及!=其他的不支持,数组比较是比较是不是每一个元素都一样,2个数组之间进行比较,要保证数组类型一样。注意[]中间的数字也算类型的一部分
同类型的数组可以赋值。
在这里插入图片描述

随机数

如果种子参数一样,每次运行程序产生的随机数都一样
在这里插入图片描述

  • 以当前时间作为种子参数
    在这里插入图片描述
  • 可以通过Intn()来限制随机数的范围
    在这里插入图片描述

冒泡排序

在这里插入图片描述

在函数间传递数组

在这里插入图片描述

http://www.lryc.cn/news/392900.html

相关文章:

  • docker 环境下failed to start lsb故障解决
  • Vue3学习(二)
  • 【C++】开源:地图投影和坐标转换proj库配置使用
  • WordPress主题大前端DUX v8.7源码下载
  • 【论文阅读】自动驾驶光流任务 DeFlow: Decoder of Scene Flow Network in Autonomous Driving
  • 调和均值
  • DP学习——模板模式
  • AOP在业务中的简单使用
  • C# 用户权限界面的测试内容
  • PyCharm
  • 【嵌入式开发 Linux 常用命令系列 1.5 -- grep 过滤特定类型文件】
  • 学习笔记——动态路由——OSPF(邻接/邻居)
  • k8s 答疑
  • [终端安全]-2 移动终端之硬件安全(SE)
  • 数据库与SQL
  • AIGC | 在机器学习工作站安装NVIDIA CUDA® 并行计算平台和编程模型
  • 【电商纯干货分享】干货速看!电商数据集数据API接口数据分析大全!
  • 随手记录: Ubuntu NVIDIA显卡驱动安装后 屏幕亮度无法调节 无法连接外显示器等问题
  • Java:数组
  • 【代码随想录——图论——岛屿问题】
  • 异步调用 - 初识
  • Java 家庭物联网
  • 机器学习——随机森林
  • Java - JDK17语法新增特性(如果想知道Java - JDK17语法新增常见的特性的知识点,那么只看这一篇就足够了!)
  • Linux-DNS
  • 使用gitlab的CI/CD实现logseq笔记自动发布为单页应用
  • 云联壹云 FinOps:赋能某车企公有云成本管理与精细化运营
  • C#静态类与非静态类
  • 亚信安全:《2024云安全技术发展白皮书》
  • GuLi商城-商品服务-API-品牌管理-云存储开通与使用