为了账号安全,请及时绑定邮箱和手机立即绑定

有没有大佬帮忙结合下列简要介绍下goto的用法及end的意义?谢谢!

有没有大佬帮忙结合下列简要介绍下goto的用法及end的意义?谢谢!

慕沐林林 2021-09-19 13:13:24
struct student* del(struct student* head, long num){struct student *p1, *p2;if(head == NULL){printf("\nlist null\n");goto end;}p1 = head;while(num != p1->num && p1->next != NULL)//p1指向的不是所要的结点,并且后还有结点。{p2 = p1;p1 = p1->next;//p1向后移一个结点。}if(num == p1->num){if(p1 == head){head = p1->next;}else{p2->next = p1->next;}printf("delete:%ld\n",num);n = n-1;}else{printf("%ld not been found!\n", num);//找不到该结点。}end://这个end是什么意思?为什么写在这里?return head;}
查看完整描述

2 回答

?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

"goto xxx"表示跳转到"xxx :"节点处,这里的"end"就相当于"xxx",并无实际意义仅作阅读方便。
该代码的目的是如果“head"(目测是链表头)是空指针就直接退出函数,因此在if(head == NULL)下直接跳转到"end"也就是标记好的函数的末尾处

查看完整回答
反对 回复 2021-09-23
?
呼唤远方

TA贡献1856条经验 获得超11个赞

end冒号表示这里是一个goto可以跳转到的标记,这样在本函数内就可以随时用goto跳转到这个标记所在位置然后从这个位置继续执行……

查看完整回答
反对 回复 2021-09-23
  • 2 回答
  • 0 关注
  • 373 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信