type
status
date
slug
summary
tags
category
icon
password
AI summary

Go语言基础之指针


1. 什么是指针

指针是用于存储内存地址的一种工具,它指向内存中的某个数据。Go语言中的指针核心是“传递内存地址,而不是值”。
特点如下:
  1. 指针实际上是内存地址的一种存储。
  1. 指针可以让你直接操作原始数据,而不是其副本。
  1. 指针应用于传值时,能更加高效地维护内存。

2. 指针的基本用法

在Go语言中,指针的定义与操作部分步如下:

2.1 定义指针

使用符号 * 来定义指针,使用 & 符号来获取变量的内存地址。
示例代码:
输出结果:
notion image

2.2 修改指针指向的值

通过指针可以修改其指向的原始变量的值。
示例代码:
输出结果:

3. 指针和函数

指针可以传递给函数,这是为了在函数内修改外部变量。
示例代码:
输出结果:

4. 指针的实践应用

4.1 值传递和指针传递

Go语言中,函数的参数传递默认是值传递,即传递变量的副本,而非原始值。如果想在函数内修改外部变量,必须通过指针传递。
比较示例:

5. 指针的注意事项

  1. Go语言不支持指针运算,如指针加减等操作。
  1. 指针不能指向布局超出的内存,避免存储漏洞。
  1. 保证指针的初始化,避免操作未初始化指针导致的错误。

6. 总结

  • 指针是存储内存地址的变量,指针允许我们直接操作变量的内存,避免复制大对象。
  • 使用指针可以在函数中修改外部变量的值,提供更高效的代码实现。
  • 在 Go 中使用指针时,注意避免空指针和不必要的指针运算。
结构体函数