c语言中for语句条件执行顺序,急急急求求求 10
StatusListInsert_Sq(SqList*L,inti,LElemType_Sqe){LElemType_Sq*newbase;LElemType_Sq*p,...
Status ListInsert_Sq(SqList *L, int i, LElemType_Sq e)
{
LElemType_Sq *newbase;
LElemType_Sq *p, *q;
if(i<1 || i>(*L).length+1)
return ERROR; //i值不合法
if((*L).length >= (*L).listsize) //若存储空间已满,需开辟新空间
{
newbase = (LElemType_Sq*)realloc((*L).elem, ((*L).listsize+LISTINCREMENT)*sizeof(LElemType_Sq));
if(!newbase)
exit(OVERFLOW);
(*L).elem = newbase;
(*L).listsize += LISTINCREMENT;
}
q = &(*L).elem[i-1]; //q为插入位置
for(p=&(*L).elem[(*L).length-1]; p>=q; --p)
*(p+1) = *p; //插入位置及之后的元素右移
*q = e; //插入e
(*L).length++; //表长增1
return OK;
}
其中,
for(p=&(*L).elem[(*L).length-1]; p>=q; --p)
*(p+1) = *p; //插入位置及之后的元素右移
这个循环的执行顺序是什么? 展开
{
LElemType_Sq *newbase;
LElemType_Sq *p, *q;
if(i<1 || i>(*L).length+1)
return ERROR; //i值不合法
if((*L).length >= (*L).listsize) //若存储空间已满,需开辟新空间
{
newbase = (LElemType_Sq*)realloc((*L).elem, ((*L).listsize+LISTINCREMENT)*sizeof(LElemType_Sq));
if(!newbase)
exit(OVERFLOW);
(*L).elem = newbase;
(*L).listsize += LISTINCREMENT;
}
q = &(*L).elem[i-1]; //q为插入位置
for(p=&(*L).elem[(*L).length-1]; p>=q; --p)
*(p+1) = *p; //插入位置及之后的元素右移
*q = e; //插入e
(*L).length++; //表长增1
return OK;
}
其中,
for(p=&(*L).elem[(*L).length-1]; p>=q; --p)
*(p+1) = *p; //插入位置及之后的元素右移
这个循环的执行顺序是什么? 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询