推荐答案
在 Go 语言中,&
和 *
运算符分别用于获取变量的地址和解引用指针。
&
运算符用于获取变量的内存地址。例如,&x
返回变量x
的内存地址。*
运算符用于解引用指针,即获取指针所指向的值。例如,*p
返回指针p
所指向的值。
本题详细解读
&
运算符
&
运算符用于获取变量的内存地址。当你使用 &
运算符时,它会返回一个指向该变量的指针。例如:
x := 42 p := &x // p 是一个指向 x 的指针
在这个例子中,p
是一个指向 x
的指针,p
的值是 x
的内存地址。
*
运算符
*
运算符用于解引用指针,即获取指针所指向的值。当你使用 *
运算符时,它会返回指针所指向的变量的值。例如:
x := 42 p := &x // p 是一个指向 x 的指针 fmt.Println(*p) // 输出 42
在这个例子中,*p
返回 p
所指向的值,即 x
的值 42
。
示例代码
以下是一个完整的示例代码,展示了 &
和 *
运算符的使用:
-- -------------------- ---- ------- ------- ---- ------ ----- ---- ------ - - -- -- - -- -- -- - ----- - --- -------------- ----- -- -------------- ------ -- -------------- -------- --- -- - --- -- ------ - -- ----------------- - ----- -- -
输出结果:
x 的值: 42 x 的地址: 0xc0000140a8 p 所指向的值: 42 修改后的 x 的值: 100
在这个示例中,我们首先获取了 x
的地址并将其赋值给指针 p
,然后通过 *p
修改了 x
的值。