\0是字符串结束符,暂用一个字节,放在内存里其实就是0x00。NULL是空地址,不占用任何字节,是用来给指针赋值的。其实就是0地址,这个地址在C语言里面是不允许访问的,访问会出异常。比如int * p = NULL,int *q,q的值是一个随机值,p的值就是0x0。