学习心得:C语言,在形参中的引用类型,使用GCC编译不通过的两种办法

char CLinkListDelete(CircularLinkList &CL){  //删除表尾元素
    if(CL->next == CL)
        {
            printf("List is EMPTY!\n");
            return 0;
        }
    else
        {
            CircularLinkList p=CL->next;
            char e;
            e=CL->data;
            while(p->next != CL){p=p->next;}//寻找尾指针前一个位置
            p->next=CL->next;
            free(CL);
            CL=p;
            CL->next->data--;
            return e;
        }
}

  

第一种方法:使用C++的编译器

第二种方法:用指针解决,改为:

char CLinkListDelete(CircularLinkList *CL){  //删除表尾元素
    if((*CL)->next == *CL)
        {
            printf("List is EMPTY!\n");
            return 0;
        }
    else
        {
            CircularLinkList p=(*CL)->next;
            char e;
            e=(*CL)->data;
            while(p->next != *CL){p=p->next;}//寻找尾指针前一个位置
            p->next=(*CL)->next;
            free(*CL);
            *CL=p;
            (*CL)->next->data--;
            return e;
        }
}

  

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。