Golang地址运算符和(* int)(Type)语法
在 Go 语言中,地址运算符和类型转换是两个常见的操作。以下是详细说明:
1. 地址运算符(&)
地址运算符(&
)用于获取一个变量的内存地址。它的作用是返回该变量在内存中的位置,即指向该变量的指针。
示例代码:
gopackage 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 的值)
}
在上面的代码中,p
是 x
的指针,通过 &x
获取 x
的地址。使用 *p
可以访问指针 p
指向的值。
2. 类型转换(*int)(Type)
类型转换用于将一个值转换为另一种类型。*int
是 Go 语言中指针类型的一个示例,它表示指向 int
类型的指针。你可以将一个值转换为这种类型的指针。
示例代码:
gopackage 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 = &x
将 x
的地址赋给 p
,使得 p
指向 x
。通过解引用 p
(*p
),我们可以访问 x
的值。
总结
- 地址运算符(&) 用于获取变量的内存地址,并返回一个指针。
- *类型转换(int) 用于指定类型的指针,例如
*int
表示指向int
类型的指针。
关键字
Golang, 地址运算符, & 符号, 类型转换, *int, 指针, 内存地址, 指针操作, 解引用, Go 语言