C语言单链表操作细节如何深入理解?