函数传参时,传入指针与传入地址有何不同

typedef struct QNode
{
int data;
QNode* next;
}QNode,*QNodePtr;

typedef struct QueueList
{
QNodePtr front;
QNodePtr rear;
}QueueList;

void Init(QueueList* Q)
{
QNodePtr p = new QNode();
Q->rear = p;
Q->front = p;
p->next = NULL;
}

调用时:
QueueList Q;
Init(&Q);
上面调用不报错,而下面的调用报错?这是为何?
QueueList*Q = NULL;
Init(Q);

QueueList*Q = NULL;
Init(Q);

传入空指针,无效操作
你没有进行实例化操作,第一个QueueList Q;已经有实例化

这个不是传进去是地址或指针的问题

地址指针都一样。需要检测是否正确

指针有类型,要标明其指向的内存单元存储什么类型的数据,而地址 就是一个 常量。