int InitStack(SqStack &S)
{
S.base = (int *)malloc(STACK_INIT_SIZE*sizeof(int));
if (!S.base) exit(OVERFLOW);
S.top = S.base;
S.stacksize = STACK_INIT_SIZE;
return OK;
}
后者是我在网上找到的:
int InitStack(SqStack *S)
{
S->base = (int *)malloc(STACK_INIT_SIZE*sizeof(int));
if (!S->base) exit(OVERFLOW);
S->top = S->base;
S->stacksize = STACK_INIT_SIZE;
return OK;
}
顺序栈构造空栈的这两种不同写法中&S与*S,S.base与S->base的不同之处?
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
2条回答 默认 最新
qzjhjxj 2023-11-01 16:12关注int InitStack(SqStack &S) ‘&‘ 是引用符,&S 理解为在 int InitStack() 函数里对实参变量直接使用或作用,引用只是一个别名而已。
int InitStack(SqStack *S) SqStack *S 是指针变量,实参为变量的地址,在 int InitStack() 函数里通过指向实参变量的地址的指针 S->base对实参作用。
它们的差别归结为"指针指向一块内存,它的内容是所指内存的地址;而引用则是某块内存的别名,引用不改变指向。本回答被题主选为最佳回答 , 对您是否有帮助呢?评论 打赏 举报解决 1无用