第 5 章 空(null) 指针
问题列表:
5.1 臭名昭著的空指针到底是什么?
5.2 怎样在程序里获得一个空指针?
5.3 用缩写的指针比较“if(p)” 检查空指针是否可靠?如果空指针的内部表达不是0 会怎么样?
5.4 NULL 是什么, 它是怎么定义的?
5.5 在使用非全零作为空指针内部表达的机器上, NULL 是如何定义的?
5.6 如果NULL 定义成#define NULL ((char *)0) 难道不就可以向函数传入不加转换的NULL 了吗?
5.7 如果NULL 和0 作为空指针常数是等价的, 那我到底该用哪一个呢?
5.8 但是如果NULL 的值改变了, 比如在使用非零内部空指针的机器上, 难道用NULL ( 而不是0) 不是更好吗?
5.9 用预定义宏#define Nullptr(type) (type *)0 帮助创建正确类型的空指针。
5.10 这有点奇怪。NULL 可以确保是0, 但空(null) 指针却不一定?
5.11 为什么有那么多关于空指针的疑惑?为什么这些问题如此经常地出现?
5.12 我很困惑。我就是不能理解这些空指针一类的东西。
5.13 考虑到有关空指针的所有这些困惑, 难道把要求它们内部表达都必须为0 不是更简单吗?
5.14 说真的, 真有机器用非零空指针吗, 或者不同类型用不同的表达?
5.15 运行时的“空指针赋值” 错误是什么意思?