为了账号安全,请及时绑定邮箱和手机立即绑定

表尾元素位置为什么是这样获取的?

表尾元素位置为什么是这样获取的?

C
慕沐林林 2019-03-02 20:10:55
表尾元素位置为什么是这样获取的?#define OK 1#define ERROR 0typedef int ElemType;typedef struct{     ElemType* elem;    int length;    int listsize; } SqList;int ListDelete(SqList* L, int i, ElemType* e){    int j;     ElemType *p, *q;    if (i < 1 || i >= L->length)     {        return ERROR;     }     p = &(*L).elem[i - 1]; //p为被删除元素的位置     *e = *p;     q = (*L).elem + (*L).length - 1; //表尾元素位置(为毛?)     for (++p; p <= q; ++p)     {         *(p - 1) = *p; //左移     }     (*L).length--;    return OK; }
查看完整描述

2 回答

?
qq_遁去的一_1

TA贡献1725条经验 获得超7个赞

(*L).elem取的是首地址,首地址加上长度偏移再减去1就是尾元素地址。

查看完整回答
反对 回复 2019-03-02
  • 2 回答
  • 0 关注
  • 623 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信