在 Go 语言中,一个尚未分配内存的指针变量是否可以被直接使用?
考察说明
考查对 Go 指针零值及内存分配机制的理解。
回答思路
- 【回答框架 1】Go 中指针的零值为 nil,未分配内存的指针即 nil 指针。直接对 nil 指针解引用或访问其指向的内存会引发运行时 panic,因此不能安全使用。
- 【回答框架 2】使用前必须通过 new 或 make 分配内存,或指向已存在的变量地址,否则操作会导致程序崩溃。
- 【回答框架 3】nil 指针可以作为参数传递或用于判断,但任何解引用操作都是非法的。
- 【关键点 1】未分配内存的指针默认是 nil,不能解引用。
- 【关键点 2】使用 new 或 make 分配内存后才能安全操作。
- 【关键点 3】nil 指针比较和传递是允许的,但解引用会 panic。
- 【易错点 1】误以为 nil 指针可以自动分配内存,实际会 panic。
- 【易错点 2】混淆 new 和 make 的适用场景,导致分配错误。