谁能帮我解释一下这段C语言蛇身构造的程序,谢谢啦

2024-11-20 21:31:07
推荐回答(2个)
回答(1):

struct SHE *Link(struct SHE *head)
 { 
   struct SHE *p, *pr;
   pr = head;//指针指向链的头head
   p = (struct SHE *)malloc(sizeof(struct SHE));//申请内存,创建新的节点
   if (p == NULL) {  哗乱printf("发生错误!!!");  exit(0); }
   if (head == NULL) {  head = p; }//如果链是空的,新节点就是链的头
    else
     {
       while (pr -> next != NULL)
         {   pr = pr -> next;  }//循环语句,将指针pr移到渣坦链的末尾
       pr -> next = p;//新节点加到链如芦桐的末尾
      }
   p -> x = Tx;//给新节点赋值,Tx,Ty未定义,应该是全局变量,否则应该作为参数传递进来
   p -> y = Ty;
   p -> next = NULL;//p->next 指向下一个元素,就相当于下一个元素的指针,指向空值,表示是尾。
   return head;//这个其实多余,因为head是指针参数,能够直接改变内容;但是与函数定义还是一致的。
 }
// head表示头结点

回答(2):

定义struct型she *head 和 she *p 分别检散档帆验是否定义成功,就冲雹蠢卖这个用处