定义一个结构体如
typedef struct {
QElemType *base;
int front;
int rear;
int queuesize;
}SqQueue;
在有个初始化的方法
void InitQueue(SqQueue& Q)
{
Q.base = (QElemType*)malloc(QUEUE_INIT_SIZE*sizeof(QElemType));
.......
}
main方法
int main()
{
QEIemType d;
SqQueue Q;
InitQueue(Q);
......
}
这样就会报错
11 E:\Files\Document\C\dcp2.c syntax error before '&' token
E:\Files\Document\C\dcp2.c In function `InitQueue':
13 E:\Files\Document\C\dcp2.c `Q' undeclared (first use in this function)
......
如果改成
void InitQueue(SqQueue *Q)
{
Q->base = (QElemType*)malloc(QUEUE_INIT_SIZE*sizeof(QElemType));
.......
}
main方法
int main()
{
QEIemType d;
SqQueue Q;
InitQueue(&Q);
......
}
就可以
我知道为什么可以。
不明白怎么不可以啊有的书上就是那样写的啊。
void InitQueue(SqQueue& Q)
意思是不能写这样的参数SqQueue& Q ?
可以 当然可以 不过你使用函数的时候传实参必须跟形参的类型一样。
函数定义的时候SqQueue &Q 和SqQueue *Q是一样的。