Go 语言中 * 和 & 的使用详解及转换示例
下面是一些示例代码来说明 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 语言中如何使用 ' * ' 和 ' & ' 操作符,以及如何进行指针的解引用和取地址操作。同时,你可以尝试在实际应用中运用这些操作符,加深对它们的理解和熟练掌握。
原文地址: https://www.cveoy.top/t/topic/PJX 著作权归作者所有。请勿转载和采集!