for()循环指针出错!!!
程序代码:int DellList(List *L,int i,STU *e){
STU *p;
if(i<1||i>L->length) return 0;
*e=L->Stu[i-1];
for(p=&(L->Stu[i-1]);p<&(L->Stu[L->length-1]);p++)
*p=*(p++);
L->length--;
return 1;
} //删除元素 以上是线性表中删除元素的函数,但是不正确,错误处在循环体指针步长加1,而循环条件中P又加1,导致错误,按照这个思路,提供4中改法:
程序代码:int DellList(List *L,int i,STU *e){
STU *p;
if(i<1||i>L->length) return 0;
*e=L->Stu[i-1];
for(p=&(L->Stu[i-1]);p<&(L->Stu[L->length-1]);p++)
*p=*(p+1);
L->length--;
return 1;
} //删除元素
程序代码:int DellList(List *L,int i,STU *e){
STU *p;
if(i<1||i>L->length) return 0;
*e=L->Stu[i-1];
for(p=&(L->Stu[i-1]);p<&(L->Stu[L->length-1]);)
*p=*(p++);
L->length--;
return 1;
} //删除元素
程序代码:int DellList(List *L,int i,STU *e){
STU *p;
if(i<1||i>L->length) return 0;
*e=L->Stu[i-1];
for(p=&(L->Stu[i-1]);p<&(L->Stu[L->length-1]);p++)
*p=*p++;
L->length--;
return 1;
} //删除元素
程序代码:int DellList(List *L,int i,STU *e){
STU *p;
if(i<1||i>L->length) return 0;
*e=L->Stu[i-1];
for(p=&(L->Stu[i-1]);p<&(L->Stu[L->length-1]);)
*p=*p++;
L->length--;
return 1;
} //删除元素 但是只有第一种有效,问题在于其他的为是么没有作用???








