带头结点的单链表求最小值问题

img
代码内容:求带头结点单链表所有结点中的最小值,将最小值用参数result返回
问题如下:
①中p=first即头结点,也就是说p没有data。
②中for循环第一次执行时p也是指向first的,那怎么会有p-> data存在呢,头结点不是没有data吗

p=first,p=p->next,可以看出p和first,next都是一样的结构类型,都有data的。

p/first/p->nex是指向同一类型的指针,都有data。
可以查查书上关于C语言结构体指针的描述。