开发者社区> 问答> 正文

在主函数中调用 initLink 函数会发生什么呢?

已解决

在主函数中调用 initLink 函数会发生什么呢?

展开
收起
出笼的鸟 2022-04-03 09:20:27 1052 0
1 条回答
写回答
取消 提交回答
  • 推荐回答

    轻松创建一个存储 {1,2,3,4} 的链表,C 语言完整代码如下:

    #include <stdio.h>

    #include <stdlib.h>

    //链表中节点的结构

    typedef struct Link {

    int  elem;
    
    struct Link *next;
    

    }link;

    //初始化链表的函数

    link * initLink();

    //用于输出链表的函数

    void display(link *p);

    int main() {

    link*p = NULL;
    
    //初始化链表(1,2,3,4)
    
    printf("初始化链表为:\n");
    
    p = initLink();
    
    display(p);
    
    return 0;
    

    }

    link * initLink() {

    int i;
    
    link * p = NULL;//创建头指针
    
    link * temp = (link*)malloc(sizeof(link));//创建首元节点
    
    //首元节点先初始化
    
    temp->elem = 1;
    
    temp->next = NULL;
    
    p = temp;//头指针指向首元节点
    
    for (i = 2; i < 5; i++) {
    
        link *a = (link*)malloc(sizeof(link));
    
        a->elem = i;
    
        a->next = NULL;
    
        temp->next = a;
    
        temp = temp->next;
    
    }
    
    return p;
    

    }

    void display(link *p) {

    link* temp = p;//将temp指针重新指向头结点
    
    //只要temp指针指向的结点的next不是Null,就执行输出语句。
    
    while (temp) {
    
        printf("%d ", temp->elem);
    
        temp = temp->next;
    
    }
    
    printf("\n");
    

    }

    2022-04-03 10:12:43
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载