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

news2024/11/16 20:56:22

分类

在这里插入图片描述

指针

指针是一个代表着某个内存地址的值。这个内存地址往往是在内存中存储的另一个变量的值的起始位置。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.coloradmin.cn/o/1900894.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用Source Insight 4.0

一、使用书签 二、添加文件 三、Search 3.1 替换所有变量 四、右键查询 4.1 查看被调用的地方

ChatGPT对话:Scratch编程中一个单词,如balloon,每个字母行为一致,如何优化编程

【编者按】balloon 7个字母具有相同的行为,根据ChatGPT提供的方法,优化了代码,方便代码维护与复用。初学者可以使用7个字母精灵,复制代码到不同精灵,也能完成这个功能,但不是优化方法,也没有提高…

C++使用Poco库封装一个HTTP客户端类--Query参数

0x00 概述 我们使用Poco库的 Poco::Net::HTMLForm 类可以轻松实现表单数据的提交。 0x01 ApiPost提交表单数据 0x02 HttpClient类 #ifndef HTTPCLIENT_H #define HTTPCLIENT_H#include <string> #include <map> #include <Poco/URI.h> #include <Poco/N…

set的应用(C++)

set的使用 【基本用法】 大家可以敲一下这段代码体会一下set的基本初始化和使用 #include <iostream> #include <set> #include <vector> using namespace std;int main() {set<int> st1; // 空的set// 使用迭代器构造string str("abcdef"…

【机器学习】基于密度的聚类算法:DBSCAN详解

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 基于密度的聚类算法&#xff1a;DBSCAN详解引言DBSCAN的基本概念点的分类聚类过…

Flower花所:稳定运营的数字货币交易所

Flower花所是一家稳定运营的数字货币交易所&#xff0c;致力于为全球用户提供安全、高效的数字资产交易服务。作为一家长期稳定运营的数字货币交易平台&#xff0c;Flower花所以其可靠的技术基础和优质的客户服务而闻名。 平台稳定性与可靠性&#xff1a; 持续运营&#xff1a;…

深度网络现代实践 - 深度前馈网络之反向传播和其他的微分算法篇

序言 反向传播&#xff08;Backpropagation&#xff0c;简称backprop&#xff09;是神经网络训练过程中最关键的技术之一&#xff0c;尤其在多层神经网络中广泛应用。它是一种与优化方法&#xff08;如梯度下降法&#xff09;结合使用的算法&#xff0c;用于计算网络中各参数的…

WordPress子比主题美化文章顶部添加百度收录按钮

要在WordPress子主题中美化文章顶部并添加百度收录按钮&#xff0c;你可以按照以下步骤操作&#xff1a; 首先&#xff0c;确保你的主题支持自定义CSS。如果不支持&#xff0c;你需要在主题目录下创建一个名为style.css的文件&#xff0c;并将以下代码复制到该文件中。如果你的…

Science期刊政策反转:允许生成式AI用于论文写作,意味着什么?

我是娜姐 迪娜学姐 &#xff0c;一个SCI医学期刊编辑&#xff0c;探索用AI工具提效论文写作和发表。 关于各大top期刊和出版社对于生成式AI用于论文写作中的规定&#xff0c;娜姐之前写过一篇文章&#xff1a; 如何合理使用AI写论文&#xff1f;来看Top 100学术期刊和出版社的…

高算力智能监控方案:基于瑞芯微RK3576核心板开发NVR网络视频录像机

近年来&#xff0c;随着人工智能和物联网技术的不断发展&#xff0c;网络视频录像机&#xff08;NVR&#xff09;在智能监控领域中的应用越来越广泛。本文将围绕RK3576核心板展开讨论&#xff0c;探讨其在NVR开发中的潜力和优势。 一、RK3576核心板 RK3576是瑞芯微的新一代中…

刷题之多数元素(leetcode)

多数元素 哈希表解法&#xff1a; class Solution { public:/*int majorityElement(vector<int>& nums) {//map记录元素出现的次数&#xff0c;遍历map&#xff0c;求出出现次数最多的元素unordered_map<int,int>map;for(int i0;i<nums.size();i){map[nu…

【星海随笔】ssh全解

发现 ssh 把我卡了很久&#xff0c;自己的文档也没有专门写 ssh 的&#xff0c;这一个文档会持续专精更新 ssh 相关的技术文档。 有些企业是全 BMC 管理平台。没有 ssh 密码登录权限 sudo apt-get install openssh-server检查SSH配置文件&#xff08;通常是 /etc/ssh/sshd_conf…

干货 | 2024云安全责任共担模型(免费下载)

以上是资料简介和目录&#xff0c;如需下载&#xff0c;请前往星球获取&#xff1a;

制定事件响应计划的四个关键步骤,如何做到风险闭环

一个有效的安全事件响应策略的关键组成部分有哪些&#xff1f;一个有效的安全事件响应策略包括四个关键组成部分&#xff0c;它们协同工作以确保对网络安全问题的快速和有效响应。 一个有效的安全事件响应策略的关键组成部分有哪些&#xff1f; 一个有效的安全事件响应策略包括…

HTML5使用<details>标签:展开/收缩信息

details 标签提供了一种替代 JavaScript 的方法&#xff0c;它主要是提供了一个展开/收缩区域。details 标签中可以使用 summary 标签从属于 details 标签&#xff0c;单击 summary 标签中的内容文字时&#xff0c;details 标签中的其他所有从属元素将会展开或收缩。语法如下&a…

职升网:详细分析!中级统计师考试题型和分值情况!

中级统计师考试题型及分值有&#xff1a;单选题&#xff1a;40道题&#xff0c;每题1分&#xff0c;共40分;多选题&#xff1a;15道题&#xff0c;每题2分&#xff0c;共30分;判断题&#xff1a;20道题&#xff0c;每题1分&#xff0c;共20分;综合应用题&#xff1a;15道题&…

视觉语言模型:融合视觉与语言的未来

1. 概述 视觉语言模型&#xff08;Vision-Language Models, VLMs&#xff09;是能够同时处理和理解视觉&#xff08;图像&#xff09;和语言&#xff08;文本&#xff09;两种模态信息的人工智能模型。这种模型结合了计算机视觉和自然语言处理的技术&#xff0c;使得它们能够在…

Arthas实战(5)- 项目性能调优

1、接口耗时查询&#xff1a;trace命令 trace 命令能主动搜索 class-pattern&#xff0f;method-pattern 对应的方法调用路径&#xff0c;渲染和统计整个调用链路上的所有性能开销和追踪调用链路。 1.1 准备测试应用 新建一个 SpringBoot 应用&#xff0c;写一耗时久的代码&…

蜂窝物联农业气象站,守护丰收每一步

现代农业的革新者——农业自动气象站&#xff0c;正以其多功能的传感器、高效的数据采集传输系统、智能的数据云平台以及可靠的供电供网系统&#xff0c;成为农业生产中的得力助手。这些传感器能够实时监测温度、湿度、风速、风向、气压、土壤温度、土壤湿度、土壤PH值、土壤盐…