VC++的问题?好奇怪的!?

来源:百度知道 编辑:UC知道 时间:2024/05/15 17:26:19
#include "stdafx.h"
#define NULL 0
#define MAX 12
typedef int ElemType;
typedef struct
{ ElemType elem[MAX];
int last;
}SeqList;

//函数的声明
void Initial(SeqList *);
void Printout(SeqList *);
void Scanfin(SeqList *);
void GetData(SeqList * ,int);
void Locate(SeqList *, int);
void InsList(SeqList *, int, ElemType);
void DelList(SeqList *,int,ElemType);
//主函数

void main()
{
SeqList L;
SeqList *q;
int i,e=0;
int *s;
s=&e;
q=&L;
Initial(q);
Scanfin(q);
printf("您输入的数据是 : ");
Printout(q);
printf("数组中最后一个元素下标是: %d\n",q->last);
printf("需要删除第i个元素 i= "); scanf("%d",&i);
DelList(q,i,e);
printf("第%d个元素%d已经删除!\n",i,*s);
}

//删除操作(将顺序表中第i个元素删除并用指针返回删除的元素)
void DelList(SeqList *q,int i,ElemType *s) //应该就是这里

void DelList(SeqList *q,int i,ElemType *s) \
你说你一定要传指针,你干吗传一个 int e 进去。

如果你非要传

DelList(q,i,(ElemType *)e);
这样强制转换就可以了。

声明:void DelList(SeqList *,int,ElemType);
实现:void DelList(SeqList *q,int i,ElemType *s)
两者不同,将声明改成void DelList(SeqList *,int,ElemType*);