鱼C论坛

 找回密码
 立即注册
查看: 766|回复: 4

[已解决]不带头节点单链表中,第一个节点的打印问题

[复制链接]
发表于 2021-8-9 21:00:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我又来求助万能的鱼油了

无头节点的单链表中,第一个位置插入的元素在主函数中打印出来的是一串数字。。。但是在insertList函数结束前打印出来的结果却是正确的。

多插入几个数字测试之后,后面的数字都能够正常显示,就只有第一个数字显示一堆数字(应该不是传值的问题吧...)

初学数据结构,脑袋不够用,实在想不到问题出在哪里

望不吝赐教!!!

涉及代码如下:
#include <stdio.h>
#include <stdlib.h>

typedef struct lNode {
        int data;
        struct lNode *next;
}lNode, linkList;

int initList(linkList *L) {        // 初始化单链表(无头节点)
        L = NULL;
        return 1;
}

int listInsert(linkList *L, int i, int e) {
        if (i == 1) {        // 在第一个位置插入节点
                        lNode *s = (lNode *)malloc(sizeof(lNode));
                        s->data = e;
                        s->next = L;
                        L = s;
                        // ********在这里打印L->data确实是等于1************
                        return 1;
        }
}

int main() {
        linkList L;
        initList(&L);
        listInsert(&L, 1, 1);
        printf("%d\n", L.data);        // ********这里pirntf出来结果是一堆数字***********
        return 0;
}
最佳答案
2021-8-9 22:07:36
改成这样
*L = *s;
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-9 21:42:15 | 显示全部楼层
L是指针的指针呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-9 22:07:36 | 显示全部楼层    本楼为最佳答案   
改成这样
*L = *s;
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2021-8-9 22:09:05 | 显示全部楼层

有点不太明白,能麻烦您细说吗?写的是纯C语言,好像不能直接用&传值,现在搞那么多指针人都傻了。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-9 23:16:17 | 显示全部楼层

懵懵懂懂好像有点悟了...看来还是得把基础知识打牢固才行,指针这一块总是出问题。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-15 12:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表