[转载]深入理解void类型
以前还真没有怎么注意过0和NULL的区别,学习了!&&&
80C51微控制器XDATA区(外部RAM)是从0地址开始的,但只要对保存在0地址中的变量不进行取地址操作(&操作),即可有效地保证指针不会指向0地址。
与此同时,虽然32位ARM7微控制器也是从0地址开始的,但这块内存仅用于存放中断向量代码,而不是程序中的有效变量地址,因此即便用空指针来判断指针的有效性,其仍然是可行的。
未初始化的指针那么,将如何在程序中获得一个空指针呢?
&&&&C0值为0的整型常量表达式
&&&&C标准预处理宏NULL,空指针常量0(void *)0NULL00void *
#define NULL ((void *)0)
&&&&NULL((void
*)0)NULLvoid*0FILE *fp =
&&&&000NULLASCIINULNULL
#define NUL '