c - 理解 C 中的 NULL 指针

标签 c pointers null

我在一些代码中发现 NULL 指针定义如下 -

#define NULL ((char *)0)

我发现这些代码编译得很好。但我不明白这是如何工作的。谁能解释一下如何将 0 转换为 char 指针?

并且将它用作使空的 FILE 指针是否有效 -

FILE *fp = NULL;

最佳答案

C 库宏 NULL 是一个空指针常量的值。它可以定义为 ((void*)0)、0 或 0L,具体取决于编译器供应商。 根据编译器的不同,NULL 的声明可以是

#define NULL ((char *)0)

#define NULL 0L

#define NULL 0

And is it valid to use it as a FILE pointer making null--> Yes.

关于c - 理解 C 中的 NULL 指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29379663/

相关文章:

java - 删除数组中的 Null 元素

c# - 确保属性不能返回 null

c - 内联定义

c - 尝试取消引用通用指针。

C指针上的指针: unused variable

c - 括号内的运算符优先级

c++ - 在 OpenGL 中可视化 4D 对象

c - 任何使用 antlr3 的 C 项目?

c++ - C++中uint8_t *值的含义和调试(打印)

Java直接修改一个类,空引用?