理解C中的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 

将它用作FILE指针使其有效是否有效 – >是。