我有一些推式和弹出式代码,我试图理解,并有一个关于弹出功能的问题。流行功能解释
这是节点结构:
struct NODE
{
int dataitem;
struct NODE *link;
};
这是流行音乐功能:
struct NODE* PopD(struct NODE *SP, int *Data)
{
struct NODE *temp;
temp = SP;
*Data = temp->dataitem;
temp = temp->link;
free(SP);
return temp;
}
所以我的问题是什么呢这行做:*Data = temp->dataitem;
它为什么会走dataitem
值变成Data
当它不在以后的方法中使用?
它将链表顶节点数据值复制到'Data'指针参数中保存的地址。作为奖励,当您传递空列表(即SP中的NULL值)或空数据目标(Data中的NULL值)时,它也会调用未定义的行为。看看你能否发现[区别](http://pastebin.com/yP54U5cg) – WhozCraig
@WhozCraig - 嘿,好! –