NULL是什么,它是怎么定义的

2023-07-06   


作为一种风格, 很多人不愿意在程序中到处出现未加修饰的0。因此定义了预处理宏NULL (在 和其它几个头文件中) 为空指针常数, 通常是0 或者((void *)0) 。希望区别整数0 和空指针0 的人可以在需要空指针的地方使用NULL。
   使用NULL 只是一种风格习惯; 预处理器把所有的NULL 都还原回0, 而编译还是依照上文的描述处理指针上下文的0。特别是, 在函数调用的参数里, NULL之前(正如在0 之前) 的类型转换还是需要。
   NULL 只能用作指针常数;


相关内容:

  1. int *p=NULL和*p= NULL有什么区别
  2. 如果NULL定义成#define NULL((char *)0)难道不就可以向函数传入不加转换的NULL了吗
  3. 在使用非全零作为空指针内部表达的机器上, NULL是如何定义
  4. SQL面试题
  5. 如果NULL和0作为空指针常数是等价的,那我到底该用哪一个
  6. 函数指针的定义是什么