VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

有编程疑问吗?还请到提问专区发帖提问!
搜索
查看: 318|回复: 4

[求助] 链表

[复制链接]
59_avatar_middle
online_member chenhaiyuan 发表于 2018-4-15 09:09:03 | 显示全部楼层 |阅读模式
3驿站币
编译后提示下方注释出:可能使用了未初始化本地变量指针pt,但是在while循环中不是有定义吗?
设定的都是指针变量对比的时候为什么不要*去内容while ((pn->no != pb->no)&&(pb->next != NULL))   ?

#include<stdio.h>
struct employee
{
        int no;
        char name[20];
        struct employee *next;
};
struct employee *insert(struct employee *head, struct employee *pb)
{
        struct employee *pn, *pt;
        pn = head;
        if (pn == NULL)
        {
                head = pb;
                pb->next = NULL;
        }                                                                          
        else
        {
                while ((pn->no != pb->no)&&(pb->next != NULL))                           
                {
                        pt = pn;
                        pn = pn->next;
                }
                if (pn->no == pb->no)
                {
                        if (head == pn)
                                head = pb;
                        else
                                pt->next = pb;                                          //???????
                        pb->next = pn;
                }
                else
                {
                        pn->next = pb;
                        pb->next = NULL;
                }
        }
        return head;

最佳答案

查看完整内容

1.如果while条件不成立,pt将不会被赋值。 2.指针变量比较肯定不定带*符号,*符号是对指针指向的内存取值。




上一篇:The ActiveX contrl is not registered on this computer
下一篇:_variant_t成员问题

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

38_avatar_middle
online_vip 2191265529 发表于 2018-4-15 09:09:04 | 显示全部楼层
1.如果while条件不成立,pt将不会被赋值。
2.指针变量比较肯定不定带*符号,*符号是对指针指向的内存取值。

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复

使用道具 举报

59_avatar_middle
ico_lz  楼主| chenhaiyuan 发表于 2018-4-15 12:11:37 | 显示全部楼层
2191265529 发表于 2018-4-15 11:15
1.如果while条件不成立,pt将不会被赋值。
2.指针变量比较肯定不定带*符号,*符号是对指针指向的内存取值 ...

在编译错误地方加上 pt = pn;就可以了?
不取内容直接对比不是对比地址吗

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复

使用道具 举报

38_avatar_middle
online_vip 2191265529 发表于 2018-4-15 12:40:44 | 显示全部楼层
chenhaiyuan 发表于 2018-4-15 12:11
在编译错误地方加上 pt = pn;就可以了?
不取内容直接对比不是对比地址吗

1.在编译错误的地方加上是可以取消编译错误,链表的实现楼主就得琢磨一下了。
2.是对比地址

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复

使用道具 举报

59_avatar_middle
ico_lz  楼主| chenhaiyuan 发表于 2018-4-15 14:11:37 | 显示全部楼层
2191265529 发表于 2018-4-15 12:40
1.在编译错误的地方加上是可以取消编译错误,链表的实现楼主就得琢磨一下了。
2.是对比地址

我考虑了下,将的内容扩大结尾while ((pn->no != pb->no)&&(pb->next != NULL))                           
                {
                        pt = pn;
                        pn = pn->next;
                }直接将这个括号的范围增加到结尾,这样可以吗?

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /1 下一条

QQ
QQ在线咨询
联系电话
13591366679
手机扫一扫 关注本站精彩内容
wxqrcode

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2018-7-18 16:56

Powered by Discuz! X3.4

© 2009-2018 cctry.com

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