Golang地址运算符和(* int)(Type)语法

在 Go 语言中,地址运算符和类型转换是两个常见的操作。以下是详细说明:

1. 地址运算符(&)

地址运算符(&)用于获取一个变量的内存地址。它的作用是返回该变量在内存中的位置,即指向该变量的指针。

示例代码:

go
package main import ( "fmt" ) func main() { x := 10 p := &x // 使用地址运算符获取变量 x 的地址 fmt.Println("x:", x) // 输出:x: 10 fmt.Println("p:", p) // 输出:p: 0xc0000100b0 (示例地址) fmt.Println("*p:", *p) // 输出:*p: 10 (解引用 p,得到 x 的值) }

在上面的代码中,px 的指针,通过 &x 获取 x 的地址。使用 *p 可以访问指针 p 指向的值。

2. 类型转换(*int)(Type)

类型转换用于将一个值转换为另一种类型。*int 是 Go 语言中指针类型的一个示例,它表示指向 int 类型的指针。你可以将一个值转换为这种类型的指针。

示例代码:

go
package main import ( "fmt" ) func main() { var x int = 10 var p *int // p 是一个 *int 类型的指针 p = &x // 将 x 的地址赋给 p,p 指向 x fmt.Println("x:", x) // 输出:x: 10 fmt.Println("p:", p) // 输出:p: 0xc0000100b0 (示例地址) fmt.Println("*p:", *p) // 输出:*p: 10 (解引用 p,得到 x 的值) }

在这个例子中,p*int 类型的指针。p = &xx 的地址赋给 p,使得 p 指向 x。通过解引用 p*p),我们可以访问 x 的值。

总结

  • 地址运算符(&) 用于获取变量的内存地址,并返回一个指针。
  • *类型转换(int) 用于指定类型的指针,例如 *int 表示指向 int 类型的指针。

关键字

Golang, 地址运算符, & 符号, 类型转换, *int, 指针, 内存地址, 指针操作, 解引用, Go 语言