数据结构*e = (*L).elem[i - 1]和e = &(*L).elem[i - 1]的区别
StatusListDelete(SqList*L,inti,LElemType_Sq*e){LElemType_Sq*p,*q;if((*L).length==0)re...
Status ListDelete(SqList *L, int i, LElemType_Sq *e) {
LElemType_Sq *p, *q;
if ((*L).length == 0) return FALSE;
if (i<1 || i>(*L).length)return FALSE;
*e = (*L).elem[i - 1]; //能正确在main函数显示e值得表达
p = &((*L).elem[i]);
q = &((*L).elem[(*L).length - 1]);
for (p; p <= q; p++) *(p - 1) = *p;
(*L).length -= 1;
return TRUE;
}
//main函数
ListDelete(&L, 6, &e);
printf("删除 L 中第 6 个元素 \"%d\" ...\n", e);
printf(" L 中的元素为:L = ");
ListTraverse(L, PrintElem);
printf("\n\n");
我想问的是,如果让e取&(*L).elem[i - 1]为什么main函数中e值就为地址了呢,这个地址不应该指向值吗 展开
LElemType_Sq *p, *q;
if ((*L).length == 0) return FALSE;
if (i<1 || i>(*L).length)return FALSE;
*e = (*L).elem[i - 1]; //能正确在main函数显示e值得表达
p = &((*L).elem[i]);
q = &((*L).elem[(*L).length - 1]);
for (p; p <= q; p++) *(p - 1) = *p;
(*L).length -= 1;
return TRUE;
}
//main函数
ListDelete(&L, 6, &e);
printf("删除 L 中第 6 个元素 \"%d\" ...\n", e);
printf(" L 中的元素为:L = ");
ListTraverse(L, PrintElem);
printf("\n\n");
我想问的是,如果让e取&(*L).elem[i - 1]为什么main函数中e值就为地址了呢,这个地址不应该指向值吗 展开
1个回答
展开全部
+&是取地址,不加&就是取值。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询