请问一下代码中被注释掉的代码char *p = NULL和char *p = ""有什么区别?

图片说明
请问一下代码中被注释掉的代码char *p = NULL和char *p = ""有什么区别?

https://blog.csdn.net/u010003835/article/details/48054041/

前者相当于双手空空
后者相当于手上拿着一个篮子,篮子里没有东西

这个比喻能理解么?

char *p是指指针变量的基类型为字符型,
null是指没有分配内存空间,对象没有指向任何地址
""是指在内存中分配的有地址,只是地址存储的内容是""