请问为什么创建了一个ListNode类型的指针p后,可以直接指向list,而不用加取址符&?

img

//定义表结点的数据结构:数据+指针
struct ListNode//定义一个结构ListNode 
{
    int value;
    ListNode* next;//这是一个struct ListNode类型的指针,存储着一个地址 ,它只可以指向ListNode类型的结构 
};

int main()
{
    //创建头指针
    ListNode* list = new ListNode;//创建一个指针,其大小为LIstNode类型的结构的所占空间的大小 
    //头指针初始化
    list->value=0;//令头指针结构中Value的值为0; 
    list->next = NULL;//令头指针中指向的地址为NULL 
   
    //链表动态增加元素 
    //定义创建新的元素的辅助指针 *p
    ListNode* p = list;//重新定义一个ListNode类型的指针p,并令其指向头指针list 
}

因为list本身就是一个指针啊,指针变量之间可以直接赋值,不用取地址