mirror of
https://gitee.com/shikong-sk/golang-study
synced 2025-02-23 07:22:16 +08:00
docs: Pointer 指针
This commit is contained in:
parent
6e16b0244c
commit
163ffa5fa9
28
base/pointer/main.go
Normal file
28
base/pointer/main.go
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import "fmt"
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
// 使用 &变量名 取 变量地址
|
||||||
|
// 使用 *指针变量 取 对应 值
|
||||||
|
n := 100
|
||||||
|
p := &n
|
||||||
|
fmt.Printf("n => %T %d\n", n, n)
|
||||||
|
fmt.Printf("p => %T %p\n", p, p)
|
||||||
|
fmt.Printf("*p => %T %d\n", *p, *p)
|
||||||
|
|
||||||
|
fmt.Println("=========================================================")
|
||||||
|
|
||||||
|
// 这种方式创建的变量为未初始化的 nil (空)指针 如果 直接对其进行赋值操作 将引发异常
|
||||||
|
var pi *int
|
||||||
|
fmt.Printf("pi => %T %v\n", pi, pi)
|
||||||
|
// 正确方式
|
||||||
|
// 通过 new 获取 对应类型 的 零值 指针
|
||||||
|
// new 一般用于 给 基本数据 类型 申请内存 如: string, int, byte 等
|
||||||
|
// make 用于 为 slice, map, chan 申请内存
|
||||||
|
pi = new(int)
|
||||||
|
*pi = 100
|
||||||
|
fmt.Printf("pi => %T %p\n", pi, pi)
|
||||||
|
fmt.Printf("*pi => %T %d\n", *pi, *pi)
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user