下面是一些示例代码来说明 Go 语言中 ' * ' 和 ' & ' 的使用,以及 ' * ' 和 ' & ' 之间的转化:

package main

import "fmt"

func main() {
    // 示例1: * 和 & 的基本使用
    x := 10
    p := &x         // 获取 x 的地址赋值给指针 p
    fmt.Println(*p) // 解引用指针 p,获取其指向的值

    // 示例2: 修改指针所指向的值
    *p = 20
    fmt.Println(x) // 输出: 20

    // 示例3: 将指针转换为原始变量
    p2 := &x      // 获取 x 的地址赋值给指针 p2
    x2 := *p2     // 将指针 p2 解引用,获取其指向的值,并赋值给变量 x2
    fmt.Println(x2) // 输出: 20

    // 示例4: 将变量转换为指针类型
    y := 30
    p3 := &y     // 获取变量 y 的地址赋值给指针 p3
    fmt.Println(*p3) // 解引用指针 p3,获取其指向的值

    // 示例5: 将指针转换为不同类型的指针
    z := 40
    var p4 *int
    p4 = &z      // 获取变量 z 的地址赋值给指针 p4
    fmt.Println(*p4) // 解引用指针 p4,获取其指向的值

    // 示例6: 将指针转换为指针的指针
    var p5 **int
    p5 = &p4     // 获取指针 p4 的地址赋值给指针 p5
    fmt.Println(**p5) // 二次解引用指针 p5,获取其指向的值

    // 示例7: 指针的零值
    var p6 *int   // 声明一个指针,但还没有赋值
    if p6 == nil {
        fmt.Println("p6 is nil") // 输出: p6 is nil
    }
}

上述示例代码演示了 ' * ' 和 ' & ' 的基本使用,以及它们之间的转化。

通过这些示例,你可以深入了解和理解在 Go 语言中如何使用 ' * ' 和 ' & ' 操作符,以及如何进行指针的解引用和取地址操作。同时,你可以尝试在实际应用中运用这些操作符,加深对它们的理解和熟练掌握。

Go 语言中 * 和 & 的使用详解及转换示例

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

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