声明指针变量
本课属于 Coddy GO 学习旅程的“基础知识”单元。第 61 课,共 109 课。
在 Go 中,你可以通过两种主要方式声明指针:使用带有指针类型的 var,或使用地址运算符和 :=。
使用 var 和指针类型声明一个指针:
func main() {
var x int = 42
var ptr *int // 声明一个指向整数的指针
ptr = &x // 将 x 的地址赋给 ptr
fmt.Println("Value of x:", x)
fmt.Println("Value of ptr:", ptr)
fmt.Println("Value at ptr:", *ptr)
}输出显示,指针存储了 x 的地址:
Value of x: 42
Value of ptr: 0xc000018030
Value at ptr: 42你也可以用一行代码声明并初始化指针,使用 :=:
y := 100
ptr := &y // 一步完成指针的声明和初始化挑战
入门在这个挑战中,你将练习在 Go 中声明和使用指针。已经为你设置了一个指针,你的任务是创建一个指向同一值的新指针。
完成代码中的 TODO,声明一个名为 'secondPointer' 的新指针变量,让它指向与现有指针相同的内存地址。
亲手试试
package main
import "fmt"
func main() {
// 这里有一个变量和一个指向它的指针
originalValue := 42
pointerToValue := &originalValue
// TODO: 声明一个名为 'secondPointer' 的新指针变量
// 让它指向与 'pointerToValue' 相同的内存地址
// 不要修改下面的代码
fmt.Printf("Original value: %v\n", originalValue)
fmt.Printf("Value through first pointer: %v\n", *pointerToValue)
fmt.Printf("Value through second pointer: %v\n", *secondPointer)
// 我们来修改原始值,看看所有指针指向的值是否也随之变化
originalValue = 100
fmt.Printf("\nAfter changing original value to 100:\n")
fmt.Printf("Original value: %v\n", originalValue)
fmt.Printf("Value through first pointer: %v\n", *pointerToValue)
fmt.Printf("Value through second pointer: %v\n", *secondPointer)
}这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: Go 在线编译器