C语言中的空指针
在C中NULL代表的是下面这段代码。
1 | #define NULL ((void *)0) |
最外层的括号是为了防止出现预处理的错误。
里层的括号则是强制类型转换,转换成void * 类型,本来void * 类型是用来存放地址的,那么这里的0自然就是地址0了。
void* 指针表示的含义是指向任何数据类型的指针。有些编译器允许对指针类型进行操作,但对void* 是不允许进行赋值或修改操作的。
在C中NULL代表的是下面这段代码。
1 | #define NULL ((void *)0) |
最外层的括号是为了防止出现预处理的错误。
里层的括号则是强制类型转换,转换成void * 类型,本来void * 类型是用来存放地址的,那么这里的0自然就是地址0了。
void* 指针表示的含义是指向任何数据类型的指针。有些编译器允许对指针类型进行操作,但对void* 是不允许进行赋值或修改操作的。