问答详情
源自:2-5 顺序表编码实战(四)

为什么要把m_pList[i]拷贝给*e?

bool List::ListDelete(int i,int *e){    
if(i<0||i>=m_iLength){        
return false;    
}       
 *e = m_pList[i];        
 for(int k=i+1;k<m_iLength;k++){     
    m_pList[k-1] = m_pList[k];    
   }    
   m_iLength--;    
   return true;
}
在删除函数ListDelete()中代码*e = m_pList[i];有什么作用,没有看到用到*e啊。为什么要把m_pList[i]中的内容拷贝出来呢?


提问者:T松子 2018-12-13 20:26

个回答

  • 慕婉清5403551
    2018-12-14 13:51:40
    已采纳

    严格来讲是没有用的,之所以这样写是为了在测试的时候,看一下我们删除的对不对,通过*e就可以看出来

  • HackerLZH
    2020-02-11 15:20:42

    老师是为了让我们对过程更加清晰,并且与前面的插入对应,先完成取出来的动作。但是实际上可以不需要*e,因为你本来就是要把它删除,所以直接将前面元素左移,直接覆盖也是可以的。


  • 慕婉清5403551
    2018-12-14 13:52:55

    你把形参里面的*e去掉,再把 *e = m_pList[i];去掉,对删除函数没有本质的影响