初识go语言之指针用法

一、环境准备

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

点击下载按提示安装即可

vscode 安装go语言扩展

测试

Go 复制代码
package main

import "fmt"

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

二、指针用法

指针基础:

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

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

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

Go 复制代码
package main

import "fmt"

// swap 函数通过指针交换两个整数的值
func swap(x *int, y *int) {
    var temp int
    temp = *x // 解引用x指针,获取x指向的值
    *x = *y   // 将y指向的值赋给x指向的位置
    *y = temp // 将临时变量temp的值赋给y指向的位置
}

// modifyValue 函数展示了如何修改指针指向的值
func modifyValue(number *int) {
    *number = 20 // 修改指针指向位置的值为20
}

func main() {
    a := 10
    b := 20

    fmt.Println("Before swap: a =", a, "b =", b)
    
    // 调用swap函数,传递a和b的地址
    swap(&a, &b)
    
    fmt.Println("After swap: a =", a, "b =", b)

    c := 5
    fmt.Println("Before modifyValue: c =", c)
    
    // 调用modifyValue函数,传递c的地址
    modifyValue(&c)
    
    fmt.Println("After modifyValue: c =", c)
}
相关推荐
第九序言T5 小时前
Python 数据处理进阶(十八)批量处理同结构文件:一个文件夹一次跑完
开发语言·python·自动化·pandas·数据处理
学长毕设6 小时前
基于springboot的食品仓库管理系统
java·spring boot·后端
滴滴答答哒6 小时前
ASP.NET Core + FaceRecognitionDotNet 人脸识别实战:DI 单例、特征向量持久化与 1:N 比对
后端·asp.net
龙亘川6 小时前
构建城市公共安全数字底座:亘川智城智慧安防系统全维度解读
java·大数据·开发语言·人工智能·信息可视化
程序喵大人6 小时前
【C++入门】内存模型与资源管理 - 09 shared_ptr 和 weak_ptr 解决共享,也带来代价
开发语言·c++·资源管理·智能指针·内存模型
Raas1007 小时前
AI网关部署方案?从部署到上线全流程
java·开发语言·人工智能·gateway·ai网关·企业级ai网关·企业级ai产品
专注仿真8 小时前
线性回归和逻辑回归算法详解
开发语言·人工智能·python·大模型训练·控制算法
jimy18 小时前
C++ 中的 `T&&`:右值引用与转发引用
开发语言·c++
captain3769 小时前
MyBatis操作数据库(入门2)
java·数据库·spring boot·后端·spring·mybatis
呆呆虫129 小时前
用 orjson 加速 SerpBase 响应解析:基准对比与注意事项
开发语言·php