首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

请问一个很简单的指针赋值有关问题

2013-06-26 
请教一个很简单的指针赋值问题代码:/*线性表的单链表存储结构*/typedef struct Node/*定义单链表的一个结

请教一个很简单的指针赋值问题
代码:

/*线性表的单链表存储结构*/
typedef struct Node/*定义单链表的一个结点*/
{
ElemType data;
Struct Node *next;
} Node;
typedef struct Node *LinkList;

/*------------------------------------------------
函数功能:获取单链表任意位置的元素
输入参数:L要提取的线性表
i元素的位置
*e提取到的元素
输出参数:
备注:
------------------------------------------------*/
Status GetElem(LinkList L,int i,ElemType *e)
{
int j;
LinkList p;/*声明一个结点*/
p = L->data;/*让p指向链表的第一个结点*/
j = 1;
while(p && j<i)/*p不为空并且计数器j还没有等于i时循环继续*/
{
p = p->next;/*让p指向下一个结点*/
j++;
}
if(!p || j>i)
{
return ERROR;/*第i个元素不存在*/
}
*e = p->data;/*取第i个元素的数据*/
return OK;
}

函数的第三行p = L->data;正确吗?
p是一个指向Node结构体的指针啊 而L->data不是一个普通的变量吗 那这样赋值的话不是应该在L->data前面加&吗?这里怎么没加呢(代码来自《大话数据结构》)

[解决办法]
没细看,要么是L,要么是L->next。

[解决办法]
p = L->data不对吧;应该是p = L->next;
[解决办法]
--肯定不对啊
[解决办法]
p = L->data;应该是p = L;

热点排行