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

go 语法里变量前面增加、*区别

在 Go 语言中,& 和 * 是与指针相关的两个重要操作符,它们的作用如下:

简单理解:

  • a为变量,&a获取指针地址
  • a为指针,*a获取值

& 操作符

  • 作用:获取变量的内存地址(取地址操作符)
  • 用法:&variable 返回该变量的指针(即指向该变量的地址)
var x int = 10
ptr := &x  // ptr 是一个指向 x 的指针

* 操作符
作为指针声明

  • 作用:声明指针类型
  • 用法:*Type 表示指向 Type 类型的指针
var ptr *int  // 声明一个指向 int 的指针

作为解引用操作符

  • 作用:获取指针指向的值(解引用操作符)
  • 用法:*pointer 返回指针指向的值
var x int = 10
var ptr *int = &x
value := *ptr  // value = 10,获取 ptr 指向的值

示例对比

package mainimport "fmt"func main() {x := 10// & 获取地址ptr := &xfmt.Printf("x 的值: %d\n", x)           // 输出: 10fmt.Printf("x 的地址: %p\n", &x)        // 输出: x 的内存地址fmt.Printf("ptr 的值: %p\n", ptr)       // 输出: x 的内存地址fmt.Printf("ptr 的类型: %T\n", ptr)     // 输出: *int// * 解引用value := *ptrfmt.Printf("通过指针访问的值: %d\n", value)  // 输出: 10fmt.Printf("ptr 指向的值: %d\n", *ptr)      // 输出: 10// 修改指针指向的值*ptr = 20fmt.Printf("修改后 x 的值: %d\n", x)        // 输出: 20
}

 

http://www.rkmt.cn/news/11805.html

相关文章:

  • 20250922_QQ_backdoor
  • 卓伊凡的第一款独立游戏-unity安装运行设置以及熟悉整体unity游戏开发和unity editor【02】-优雅草卓伊凡
  • 9.24(补)
  • 亚马逊与AWS如何通过漏洞赏金计划构建深度安全防御
  • 详细介绍:锚定效应(解释+类型区分+商业及生活应用+如何避免)
  • 【JavaEE】SpringIoC与SpringDI - 详解
  • 24.Linux硬盘分区管理 - 详解
  • CCF CSP-J 2025_from_黄老师_km
  • AI一周资讯 250918-250925
  • SQL注入-联合注入
  • 详细介绍:Windows安装PostgreSQL入门操作手册
  • 一种CDN动态加速首次访问加速方法
  • 使用vosk模型进行语音识别
  • 【LeetCode】122. 买卖股票的最佳时机 II
  • Ansible + Docker 部署 Apache Kafka 3.9 集群
  • 完整教程:K230基础-PWM控制介绍及应用
  • 什么是UDFScript用户自定义脚本
  • 高端网站设计中的微交互:细节如何决定用户体验
  • Openwrt-DDNS 配置详解
  • 【2025.9.16】关于举办PostgreSQL数据库管理人才研修与评测班的通知
  • 隐藏在众目睽睽之下:从PEB中解除恶意DLL的链接
  • 详细介绍:Java 领域中 Java-EE 的异步编程实现
  • 深入解析:豆包Seedream 4.0:全面测评、玩法探索与Prompt解读
  • 破局与进化:火山引擎Data Agent从落地实践到架构未来
  • 五项能力斩获满分!天翼云云WAF获IDC权威认可!
  • lvgl 9.3 style使用导致内存泄漏问题
  • king3399 编译报错
  • 11_Reactor网络模型
  • 「LNOI2022」盒
  • Android 源码中如何生成一个platform JKS 文件?