单链表方向逆置的代码问题

img
为什么first= null之后,while循环内q=p->link还能执行呢。*p不是也指向first吗,first不是置空了吗
想问:(first= null和p-> link究竟代表啥)😭

因为p在first设置为null之前,已经赋值完成。它指向等于原来first的目标地址。
之后清除first不影响它。
first是指针,指针被设置为null,它指向的内存地址并不受影响。