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

为什么要把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]中的内容拷贝出来呢?


正在回答

3 回答

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

0 回复 有任何疑惑可以回复我~
#1

T松子 提问者

明白了,谢谢
2018-12-16 回复 有任何疑惑可以回复我~

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


1 回复 有任何疑惑可以回复我~
#1

T松子 提问者

和一楼的想法差不多,就是为了取出这个数(也可以说暂时存一下这个数),目的是为了在测试的时候,能直观看到删除的就是这个数。
2020-02-11 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信