一级棒(Eachfun)
RSS订阅
动态数组
发表时间:2006-07-11 00:29:00 关键词:C++,MFC,VC,Primer,编程,教程,读书

  我晕,本书才讲了个开头,居然讲到new和delete了。我“偷窥”了一下:下一章开始才讲到操作符,而且下章将有专门的一节讲new和delete。看来这里提到它们的目的只是为了说明string这样的类为什么可以自动适应大小。
  new的返回值是一个指针,不过本书暂时没有提到new也会返回NULL的。是的,暂时还不用提内容不够这么复杂的情况。
  引用:在自由存储区中创建的数组对象数组是没有名字的,程序员只能通过其地址间接地访问堆中的对象。
  笔记:这里有两个问题,一是“数组的名字”其实也是个指针,指针当然也可以看成“数组的名字”,这本来就可以互换的,正如我前面说的一样:“5[a]”完全等价于“*(5+a)”。至于a是静态的数组名还是动态的指针,没有区别。第二个问题是这里提到了“堆”,在没有讲解内存之前,这样说毕竟理解上有难度。还是那句话,这本书是给有一定基础的人看的。
  令我耳目一新的是:new还能创建const数组。——不是我不懂,而是实在没想到。再说了,创建一大堆const的内容,而且只能初始化为同一个值。那这有什么用?正如本书提到的一样:“这样的数组实际上用处不大”。依我看,不是用处不大,而是根本没用。
  动态空间的释放应该用“delete []p;”而不是“delete p;”,这是一个只要记住就可以的问题,我之所以提上一句,是因为有人没有注意过这个细节,包括很多自以为很了不起的程序员。
  引用:如果遗漏了方括号对,这是一个编译器无法发现的错误,将导致程序在运行时出错。

本站特约顾问律师常州东晟律师事务所朱立律师(电话13915029670,QQ646146109)提醒您:
本站文章皆为作者原创,其它媒体(包括但不限于报刊、杂志、网站、电视、电台)未经作者书面许可严禁转载(或部分摘录)!
发表评论
称呼:
QQ:
邮箱:
链接:
内容:
搜索: 百度搜索 Google搜索
Copyright©2000 - 2008 Eachfun.Com, All Rights Reserved 一级棒网络
苏ICP备05080156号
一级棒建站系统 http://www.eachfun.com 一级棒版权所有,未经许可不得商用!