c语言中void *和NULL

1.  int *str = NULL;
 #define NULL    ((void *)0)
空指针实质上是有指向的指针,但它指向的地址是很小的地址,约定俗成为地址0.
 
2. void *
void * 类型指针,这个类型指针指向了实实在在的存放数据的地址,但是该地址存放的数据的数据类型我们暂时不知道.
 
3. const void *a
这是定义了一个指针a,a可以指向任意类型的值,但它指向的值必须是常量.在这种情况下,我们不能修改被指向的对象,
但可以使指针指向其他对象.