古代的剑客们与
对手相逢时,无
论对手多么强大,
明知不敌,也要亮出自己的剑!
读者:用预定义宏 #define Nullptr(type) (type *)0 帮助创建正确类型 的空指针。
阿一:这种技巧, 尽管很流行而且表面上看起来很有吸引力, 但却没有多少意义。在赋值和比较时它并不需要。它甚至都不能节省键盘输入
读者:为什么NULL 可以确保是 0, 但空 (null) 指针却不一定?
阿一:随便使用术语 “null” 或 “NULL” 时, 可能意味着以下一种或几种含义:
1. 概念上的空指针, 它使用以下的东西实现的 ⋯⋯
2. 空指针的内部 (或运行期) 表达形式, 这可能并不是全零, 而且对不用的指针 类型可能不一样。真正的值只有编译器开发者才关心。
3. 空指针常数, 这是一个常整数0。
4. NULL 宏, 它被定义为0。
5. ASCII 空字符 (NUL), 它的确是全零, 但它和空指针除了在名称上以外, 没有 任何必然关系。
6. “空串” (null string), 它是内容为空的字符串 ("")。
有时候,正是那些意想不到之人,成就了无人能成之事。
——图灵