在学习顺序栈的初始化过程当中,我模仿了以下代码:
/* 初始化顺序栈 */
Status InitStack(SqStack *S)
{
(*S).base = (SElemType_Sq *)malloc(STACK_INIT_SIZE * sizeof(SqStack));
if(!(*S).base) return ERROR;
(*S).top = (*S).base;
(*S).stacksize = STACK_INIT_SIZE;
return OK;
}
在以上代码中,是使用
(*S).base
或者
(*S).top
或者
(*S).stacksize
的方式引用结构体成员的。但是在实际打代码的过程中,我发现这样的编辑效率并不高。于是,我尝试了这样一种引用方式,即
S->base
,
S->top
,
S->stacksize
,并且也成功运行了。
因此,在对顺序栈的操作过程中,我们可以直接使用指针引用的方式,即如下:
/* 初始化顺序栈 */
Status InitStack(SqStack *S)
{
S->base = (SElemType_Sq *)malloc(STACK_INIT_SIZE * sizeof(SqStack));
if(!S->base) return ERROR;
S->top = S->base;
S->stacksize = STACK_INIT_SIZE;
return OK;
}