回 帖 发 新 帖 刷新版面

主题:关于一个栈的基本问题

#include<stdio.h>
#include<stdlib.h>

#define  STACK_INIT_SIZE  100
#define  STACKINCREMENT  10
#define  ERROR 0
#define  OK 1
typedef  int SElemType;
typedef  int Status;

typedef struct
{
   SElemType  *base;
    SElemType  *top;
   int     stacksize;
} SqStack;

Status InitStack(SqStack &S)
{
  if(!(S.base=(SElemType*)malloc(STACK_INIT_SIZE*sizeof(SElemType))))  exit(0);
  S.top = S.base;
  S.stacksize = STACK_INIT_SIZE;
  return 1;
}

这个创建栈的过程,(后面还有一些代码省略),在turbo C上检测的时候好像在Status InitStack(SqStack &S)
这个地方老出问题,Status InitStack(SqStack &S)这个函数中的&这个符号是什么意思啊?请高手指教一二...

回复列表 (共4个回复)

沙发

有了这个引用号后,你传递的是地址,意思就是在你传进去的栈的地址上直接操作,不另外打草稿了。

板凳


这个是引用,&是C++中的引用操作符,用这个只是给变量取了一个别名,你对这个变量操作就等于是对你对实参进行操作,可以找本C++的书看下就好了

3 楼

turbo C几啊
能编译C++的代码么?

4 楼

严那本《数据结构》上的前言写了关于伪代码中使用引用的问题

数据结构书基本都是伪代码

楼主要学习其中的思想,根据思想来自己实现

我来回复

您尚未登录,请登录后再回复。点此登录或注册