Go语言指针详解:* 和 & 操作符深度解析

在 Go 语言中,'*' 和 '&' 是两个不可或缺的操作符,它们用于处理指针类型的操作。

1. '*' 操作符:

  • 声明指针类型: 在变量声明时,'*' 用于表示该变量是指针类型。例如,'var p *int' 声明了一个指向整型的指针变量 'p'。
  • 解引用指针: 当需要访问指针指向的值时,可以使用 '*' 操作符进行解引用。例如,'*p' 表示获取指针 'p' 所指向的整型值。

2. '&' 操作符:

  • 获取变量地址: '&' 操作符可以获取变量的内存地址。例如,'x := 10; p := &x' 将 'p' 设置为 'x' 的地址。
  • 传递指针参数: 在函数调用中,可以使用 '&' 操作符将变量的地址作为参数传递给函数。例如,'func foo(p *int)' 定义了一个接收整型指针参数的函数 'foo'。

代码示例:

func main() {
    x := 10
    p := &x     // 将 p 设置为 x 的地址
    fmt.Println(*p)   // 解引用指针 p,获取其指向的值

    y := 20
    foo(&y)     // 将变量 y 的地址传递给函数 foo
}

func foo(p *int) {
    fmt.Println(*p)   // 解引用指针 p,获取其指向的值
}

代码解析:

  • 在 'main' 函数中,我们首先声明了一个整型变量 'x' 并赋值为 10。
  • 接着,使用 '&' 操作符获取 'x' 的地址并将其赋值给指针变量 'p'。
  • 然后,使用 '*' 操作符解引用指针 'p',打印出其指向的值,即 10。
  • 接下来,我们声明了另一个整型变量 'y' 并赋值为 20。
  • 调用 'foo' 函数时,我们将 'y' 的地址作为参数传递给函数。
  • 在 'foo' 函数中,我们同样使用 '*' 操作符解引用指针 'p',并打印出其指向的值,即 20。

总结

总而言之,'*' 操作符用于声明指针类型和解引用指针,而 '&' 操作符则用于获取变量的地址。这两个操作符在 Go 语言中用于处理指针类型的操作,理解它们的使用方法对于编写高效、安全的 Go 代码至关重要。

Go语言指针详解:* 和 & 操作符深度解析

原文地址: https://www.cveoy.top/t/topic/PIa 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录