关于#C语言# 链表的问题



NODE* creatlist(int n)
{
    NODE* h, * p, * s;
    int i; 
    float temp;
    h = p = (NODE*)malloc(sizeof(NODE));    //  第八行
    for (i = 1; i <= n, i++) 
    {
        s = (NODE*)malloc(sizeof(NODE));
        printf("input name =");
        scanf("%s", s->name);
        printf("input t=");
        scanf("%f",&temp);
        s->t = temp;
        s->next = p;   //  第十七行
        p->next = s; 
        p = p->next;
    }
    p->next = NULL;
}

代码的 第八行 和 第十七行没看懂

s->next = p;
也就是让创建的节点挂在p的前面

哪个是第8行,标一下啊

8行: 动态分配一段内存给一个链表结点,h=p, 把 p赋给h ,h也指向这段内存

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/1098271
  • 这篇博客也不错, 你可以看下C语言学习中遇到的问题和解决方法
  • 除此之外, 这篇博客: C语言深度学习之基本数据类型中的 显示八进制和十六进制 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 在C程序中,既可以使用和显示不同进制的数。不同的进制要使用不同的转换说明。0x或0X来表示十六进制数,0前缀表示八进制数。以十进制显示数字,使用%d;以八进制显示数字,使用%o;以十六进制显示数字,使用%x。另外,要显示各进制数的前缀0、Ox和0x,必须分别使用%#0、%#x、%#X。