推荐答案
// www.javascriptcn.com code example
package main
import "fmt"
func main() {
var a int = 10
var p *int = &a
fmt.Println("Value of a:", a)
fmt.Println("Address of a:", &a)
fmt.Println("Value of p:", p)
fmt.Println("Value pointed by p:", *p)
*p = 20
fmt.Println("New value of a:", a)
}本题详细解读
指针的概念
在 Go 语言中,指针是一个变量,它存储了另一个变量的内存地址。通过指针,我们可以直接访问和修改该内存地址中存储的值。
指针的声明与初始化
在 Go 中,指针的声明使用 * 符号,例如 var p *int 表示声明一个指向 int 类型变量的指针。指针的初始化可以通过 & 符号获取变量的地址,例如 p = &a 表示将变量 a 的地址赋值给指针 p。
指针的解引用
通过 * 符号可以解引用指针,即访问指针所指向的内存地址中存储的值。例如 *p 表示获取指针 p 所指向的值。
指针的修改
通过解引用指针,我们可以修改指针所指向的内存地址中存储的值。例如 *p = 20 表示将指针 p 所指向的值修改为 20。
示例代码解析
var a int = 10:声明并初始化一个int类型的变量a,值为10。var p *int = &a:声明一个指向int类型的指针p,并将其初始化为变量a的地址。fmt.Println("Value of a:", a):输出变量a的值。fmt.Println("Address of a:", &a):输出变量a的内存地址。fmt.Println("Value of p:", p):输出指针p的值,即变量a的地址。fmt.Println("Value pointed by p:", *p):输出指针p所指向的值,即变量a的值。*p = 20:通过指针p修改变量a的值为20。fmt.Println("New value of a:", a):输出修改后的变量a的值。
通过这个示例,我们可以看到指针的基本用法,包括指针的声明、初始化、解引用和修改。