我有一些推和弹出的代码,我正在试图理解,并有一个关于pop函数的问题。
这是节点结构:
struct NODE
{
int dataitem;
struct NODE *link;
};这是pop功能:
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中?
发布于 2014-04-28 01:34:05
数据通过Data参数返回。返回值用于更新堆栈指针。据推测,该代码应该是这样使用的:
struct NODE *stack = NULL;
// push some items
// ...
// pop one
int data;
stack = PopD(stack, &data);
printf("%d\n", data);发布于 2014-04-28 01:33:44
调用此函数的人将传入一个指向整数的指针--期望该整数被堆栈中最上面的整数填充。
即
int x;
stack = PopD(stack, &x);
printf("Top of stack was %d\n", x);发布于 2014-04-28 01:31:25
当弹出堆栈的顶部项时,将通过输出参数返回堆栈顶部包含的值。
它可能对调用函数很有用。
https://stackoverflow.com/questions/23331193
复制相似问题