数据类型:指针
什么是指针
var name string = "Hello world"指针的创建
// 定义普通变量
aint := 1
// 定义指针变量
ptr := &aint// 创建指针
astr := new(string)
// 给指针赋值
*astr = "Hello world"
指针的零值
指针与切片
Last updated
var name string = "Hello world"// 定义普通变量
aint := 1
// 定义指针变量
ptr := &aint// 创建指针
astr := new(string)
// 给指针赋值
*astr = "Hello world"
Last updated
aint := 1
var bint *int // 声明一个指针
bint = &aint // 初始化
package main
import "fmt"
func main() {
aint := 1 // 定义普通变量
ptr := &aint // 定义指针变量
fmt.Println("普通变量存储的是:", aint)
fmt.Println("普通变量存储的是:", *ptr)
fmt.Println("指针变量存储的是:", &aint)
fmt.Println("指针变量存储的是:", ptr)
}
普通变量存储的是: 1
普通变量存储的是: 1
指针变量存储的是: 0xc0000a0090
指针变量存储的是: 0xc0000a0090// 第一种
fmt.Printf("%p", ptr)
// 第二种
fmt.Println(ptr)func main() {
a := 25
var b *int // 声明一个指针
if b == nil {
fmt.Println(b)
b = &a // 初始化:将a的内存地址给b
fmt.Println(b)
}
}
<nil>
0xc0000a0090func modify(sls []int) {
sls[0] = 90
}
func main() {
a := [3]int{89, 90, 91}
modify(a[:])
fmt.Println(a)
}
func modify(arr *[3]int) {
(*arr)[0] = 90
}
func main() {
a := [3]int{89, 90, 91}
modify(&a)
fmt.Println(a)
}o