|
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.指针变量比较肯定不定带*符号,*符号是对指针指向的内存取值。
上一篇: 结构体问题下一篇: _variant_t成员问题
|