C语言 | 每日基础(25)

2020-08-11 15:00:50 浏览数 (1)

古代的剑客们与

对手相逢时,无

论对手多么强大,

明知不敌,也要亮出自己的剑!

读者:用预定义宏 #define Nullptr(type) (type *)0 帮助创建正确类型 的空指针。

阿一:这种技巧, 尽管很流行而且表面上看起来很有吸引力, 但却没有多少意义。在赋值和比较时它并不需要。它甚至都不能节省键盘输入

读者:为什么NULL 可以确保是 0, 但空 (null) 指针却不一定?

阿一:随便使用术语 “null” 或 “NULL” 时, 可能意味着以下一种或几种含义:

1. 概念上的空指针, 它使用以下的东西实现的 ⋯⋯

2. 空指针的内部 (或运行期) 表达形式, 这可能并不是全零, 而且对不用的指针 类型可能不一样。真正的值只有编译器开发者才关心。

3. 空指针常数, 这是一个常整数0。

4. NULL 宏, 它被定义为0。

5. ASCII 空字符 (NUL), 它的确是全零, 但它和空指针除了在名称上以外, 没有 任何必然关系。

6. “空串” (null string), 它是内容为空的字符串 ("")。

有时候,正是那些意想不到之人,成就了无人能成之事。

——图灵

0 人点赞