初识go语言之指针用法

ops/2025/1/21 21:09:03/

一、环境准备

安装go语言编译环境,官网地址:https://go.dev/dl/ 或者 https://golang.google.cn/dl/

点击下载按提示安装即可

vscode 安装go语言扩展

测试 

package mainimport "fmt"func main() {fmt.Println("Hello, World!")
}

二、指针用法

指针基础:

  • 指针变量存储的是另一个变量的地址
  • 使用&操作符获取变量的地址
  • 使用*操作符声明一个指针变量
  • 使用*操作符解引用指针来访问指向的值
  • *x = 100,*出现在等号左边(左值)表示指针指向的变量
  • y = *x,*出现在等号右边(右值)表示获取指针指向变量的值

与C或C++不同,Go不支持指针运算(例如通过指针进行数组遍历),这使得指针的使用更加安全

测试:如何交换两个变量的值和修改变量的值

package mainimport "fmt"// swap 函数通过指针交换两个整数的值
func swap(x *int, y *int) {var temp inttemp = *x // 解引用x指针,获取x指向的值*x = *y   // 将y指向的值赋给x指向的位置*y = temp // 将临时变量temp的值赋给y指向的位置
}// modifyValue 函数展示了如何修改指针指向的值
func modifyValue(number *int) {*number = 20 // 修改指针指向位置的值为20
}func main() {a := 10b := 20fmt.Println("Before swap: a =", a, "b =", b)// 调用swap函数,传递a和b的地址swap(&a, &b)fmt.Println("After swap: a =", a, "b =", b)c := 5fmt.Println("Before modifyValue: c =", c)// 调用modifyValue函数,传递c的地址modifyValue(&c)fmt.Println("After modifyValue: c =", c)
}


http://www.ppmy.cn/ops/152010.html

相关文章

基于SpringBoot+Vue旅游管理系统的设计和实现(源码+文档+部署讲解)

个人名片 🔥 源码获取 | 毕设定制| 商务合作:《个人名片》 ⛺️心若有所向往,何惧道阻且长 文章目录 个人名片环境需要技术栈功能介绍功能说明 环境需要 开发语言:Java 框架:springboot JDK版本:JDK1.8 数据库&…

【教程】windows下使用docker部署hyperf框架

一、Docker for desktop安装 docker官网地址请点击 二、使用Docker部署hyperf代码 请注意:后续所有的操作均在容器中执行,而非本地路径下 1. 创建环境: docker run --name hyperf -v D:/phpstudy_pro/WWW/hyperf:/data/project -p 9501:…

Python爬虫---中国大学MOOC爬取数据(文中有数据集)

1、内容简介 本文为大二在校学生所做,内容为爬取中国大学Mooc网站的课程分类数据、课程数据、评论数据。数据集大佬们需要拿走。主要是希望大佬们能指正代码问题。 2、数据集 课程评论数据集,343525条(包括评论id、评论时间、发送评论用户…

单片机的原理及其应用:从入门到进阶的全方位指南

以下是一篇详细、深入的“单片机的原理及其应用”博客文章示例,适合想要系统学习或深入了解单片机的读者。文中不仅会介绍单片机的基本原理、内部构造、开发流程和应用领域,还会融入更多的理论分析、实操案例以及常见问题与解决思路等,帮助读…

Vue.js组件开发-实现后端返回二进制文件在浏览器自动下载

在Vue.js组件开发中,若需实现从后端获取二进制文件并触发浏览器自动下载,可以利用axios(或其他HTTP客户端库)来向后端发送请求,随后利用Blob对象及URL.createObjectURL方法生成一个可供下载的链接,最后通过…

Profibus DP转Modbus TCP协议转换网关模块功能详解

Profibus DP 和 Modbus TCP 是两种不同的工业现场总线协议,Profibus DP 常用于制造业自动化领域,而 Modbus TCP 则在工业自动化和楼宇自动化等领域广泛应用。实现 Profibus DP 转 Modbus TCP 功能,通常需要特定的网关设备,以下为你…

Jira中bug的流转流程

Jira中bug的状态 1. 处理Bug的流程2. bug状态流转详述bug的状态通常包括 1. 处理Bug的流程 2. bug状态流转详述 bug的状态通常包括 未解决 1. 测试人员创建一个bug,填写bug的详细信息,如概要、bug级别、复现步骤、现状、预期结果等 2. 定位bug&#x…

如何使用MaskerLogger防止敏感数据发生泄露

关于MaskerLogger MaskerLogger是一款功能强大的记录工具,该工具可以有效防止敏感数据泄露的发生。 MaskerLogger旨在保护目标系统的日子安全,此格式化程序可确保你的日志安全并防止敏感数据泄露。例如使用此格式化程序,打印下列数据&#x…