请问为什么输出队的第一个是问号
#include<stdio.h>#include<malloc.h>
#define MS 10
typedef int ET;
typedef struct
{
ET data[MS];
int front,rear,count;
}SqQueue;
void CS(SqQueue*&q)//初始化一个队
{
q=(SqQueue*)malloc(MS*sizeof(SqQueue));//给队空间
q->front =q->rear=0;//头指针等于尾指针,初始化。
q->count=0;//队的长度
}
void XH(SqQueue*&q)//初始化
{
free(q);
}
bool KD(SqQueue*q)//判断队是否为空
{
if(q->front =q->rear)
{
printf("队为空。\n");
return false;
}
else
{
printf("队不为空。\n");
return 0;
}
}
bool JD(SqQueue*&q,ET e)//进队
{
if((q->rear+1)%MS==q->front)//判断队满溢出情况
return false;
q->rear=(q->rear+1)%MS;
q->data[q->rear]=e;
return 0;
}
bool CD(SqQueue*q,ET e)//出队
{
if(q->front==q->rear)//对空
return false;
else
q->front=(q->front+1)%MS;
e=q->data[q->front];
return 0;
}
bool SC(SqQueue*q)//输出元素
{
printf("队中元素为:\n");
for(int i=q->front;i<=q->rear;i++)
{
printf("%c\n",q->data[i]);
}
return false;
}
void main()
{
ET e;
SqQueue*L;
CS(L);
KD(L);
JD(L,'a');
JD(L,'b');
JD(L,'c');
JD(L,'d');
JD(L,'e');
JD(L,'f');
SC(L);
CD(L,e);
SC(L);
}
输出后第一个是问号。