|
|
|
|
@ -45,9 +45,9 @@ address of b is 0x1040a124
|
|
|
|
|
|
|
|
|
|
你可能得到的是一个不同的 `b` 的地址,因为 `b` 可能被存储在内存的任意一个地方。
|
|
|
|
|
|
|
|
|
|
## 指针的空值
|
|
|
|
|
## 指针的零值
|
|
|
|
|
|
|
|
|
|
指针的空值为 `nil`。
|
|
|
|
|
指针的零值为 `nil`。
|
|
|
|
|
|
|
|
|
|
```golang
|
|
|
|
|
package main
|
|
|
|
|
@ -76,7 +76,7 @@ b after initialization is 0x1040a124
|
|
|
|
|
|
|
|
|
|
## 利用 `new` 函数创建指针
|
|
|
|
|
|
|
|
|
|
Go 还提供一个实用的函数 `new` 来创建指针。`new` 函数接收一个类型,并返回一个该类型的空值指针。
|
|
|
|
|
Go 还提供一个实用的函数 `new` 来创建指针。`new` 函数接收一个类型,并返回一个该类型的零值指针。
|
|
|
|
|
|
|
|
|
|
我们来看一个实例:
|
|
|
|
|
|
|
|
|
|
@ -95,7 +95,7 @@ func main() {
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
上面的程序中,我们在第 8 行利用 `new` 函数创建了一个指向 `int` 类型的指针。由于 `int` 类型的空值为 `0`,变量 `size` 是一个指向 `0` 的整数指针(`*int` 类型)。
|
|
|
|
|
上面的程序中,我们在第 8 行利用 `new` 函数创建了一个指向 `int` 类型的指针。由于 `int` 类型的零值为 `0`,变量 `size` 是一个指向 `0` 的整数指针(`*int` 类型)。
|
|
|
|
|
|
|
|
|
|
程序输出:
|
|
|
|
|
|
|
|
|
|
|