golang中关于指针操作符&,*的用法描述
在Go语言(Golang)中,指针操作符&
和*
用于处理指针。以下是它们的详细用法描述:
&
操作符&
操作符用于获取变量的内存地址,即创建一个指向该变量的指针。
var x int = 10
var p *int = &x
在这个例子中,&x
获取了变量x
的内存地址,并将其赋值给指针变量p
。此时,p
是一个指向int
类型变量x
的指针。
*
操作符*
操作符有两种用法:
*
用于表示该变量是一个指针。var p *int
这里,p
被声明为一个指向int
类型的指针。
*
,可以访问指针所指向的变量的值。var x int = 10
var p *int = &x
fmt.Println(*p) // 输出:10
在这个例子中,*p
解引用指针p
,获取并打印出p
所指向的变量x
的值。
以下是一个综合示例,展示了&
和*
操作符的用法:
package main
import "fmt"
func main() {
var x int = 10
var p *int = &x
fmt.Println("x的值:", x) // 输出:x的值: 10
fmt.Println("x的地址:", &x) // 输出:x的地址: 0xc0000140a8
fmt.Println("p指向的值:", *p) // 输出:p指向的值: 10
fmt.Println("p的值(x的地址):", p) // 输出:p的值(x的地址): 0xc0000140a8
*p = 20
fmt.Println("修改后x的值:", x) // 输出:修改后x的值: 20
}
在这个示例中:
&x
获取了x
的地址,并赋值给指针p
。*p
解引用指针p
,获取p
所指向的变量x
的值。*p = 20
修改了p
所指向的变量x
的值。通过这些操作,可以实现对变量的间接访问和修改。