一、c中的NULL
在c语言当中,NULL被定义为
#define NULL ((void *)0)
也就是说,NULL是一个void*类型的指针,并且把void*指针赋值给int *或者float *时会发生强制类型转换,将void *转换为所需要的指针类型。
二、c++中的NULL
在c++中,NULL被定义为
#ifdef __cplusplus
#define NULL 0
#else
#define NULL ((void *)0)
#endif
也就是说,NULL其实就是整型数0,这样的定义势必会在传参或者空指针赋值时带来错误,为了解决这个问题,c++引入了nullptr的概念,这个nullptr就相当于c语言当中的NULL,所以在用c++编程时,尽量使用nullptr。