2011年计算机等级考试二级C语言常见问题:空(null)指针

2014-11-09 11:15:05 · 作者: · 浏览: 32

第 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 运行时的“空指针赋值” 错误是什么意思?


编辑特别推荐: