基于C++二维数组的几个问题研究.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
【技术研发 】譬誉 基于C++二维数组的几个 问题研究 沈 鹏 (湖南现代物流职业技术学院 湖南 长沙 410131) 摘 要:二维数组使用一般有两种情况,一种是描述一个二维的事物。比如用1表示墙,用。表示通路 ,我们可以用二维数组来描述一个 迷宫地图;用1表示有通路 ,O表示没有通路 ,我们可以用二维数组来描述几个城市之 间的交通情况。还有一种是描述多个具有多项属性的事 物。比如有多个学生,每个学生有语文、数学和英语三门成绩,我们就可以用二维数组来描述。对二维数组使用过程中的几个问题进行探究。 关键词:c+ ;二维数组;动态分配;参数 ;指针 中图分类号 :TP312 文献标识码:A 文章编号 :1671—7597(2012)1120085—02 c++程序 中的new[]和delete[]作为动态 内存分配的重要手 真正意义的c语言二维数组,满足所有二维数组访问的方法,而 段在程序设计中有着广泛应用,尤其应用在程序员 自定义的类 且 内存利用效率高,程序性能好。 与结构的数组声明上 。但 由于c++程序语言中并没有给 出显示 2C++二维数组的传递 的数组访问限制[1],极易造成 数组越界 的错误 。这种错误会 用二维数组作为参数传递 (用二维数组处理矩阵),但是 引起对非程序数据段 的修改,而使得程序崩溃 。 希望接受传递二维数组参数 的函数可 以处理任意维度 的数组 1C++中二维数组的动态分鼠 (希望矩阵的行数和列数都是不固定的)。但一般传递二维数 在C++中动态分配二维数组可 以先 申请一维 的指针数组 , 组的基本规则好像是这样 的:可以用二维数组名作为实参或者 然后该数组中的每个指针再 申请数组,这样就相当于二维数组 形参 ,在被调用函数 中对形参数组定义时可 以可 以指定所有维 了,但是这种方法会导致每行可能不相邻 ,从而访 问效率 比较 数 的大小,也可 以省略第一维的大小说 明。如: 低。那么什么是真正的二维数组呢?c语言中的二维数组在 内存 VOid Func(int array[3][10]):void Func(int 组织形式是按行存储的连续的内存区域。所 以,必须保证数组 array[][10]): 元素是按行存储 的,而且也是最重要的是 内存要连续 。 二者都是合法而且等价 ,但是不能把第二维或者更高维的 所 以,笔者设计如下的一个方法: 大 小 省 略 , 如 下面 的定 义 是 不 合法 的 :void Func(int 假定二维数组的元素变量类型是MyType;可 以是C语言接 array[][]):将二维数组当作参数 的时候 ,必须指 明所有维数 受的除void2_外的任何类型,因为编译器不晓得VOid类型的大 大小或者省略第一维的,但是不能省略第二维或者更高维的大 小;例如int,float,doub1e等等类型; 小,这是 由编译器原理限制的。但是我们在编写程序 的时候却 introw=2://///暂假定行数是2,这个可 以在运行时刻 需要用到各个维数都不固定的二维数组作为参数 ,这就难办 决定; 了,编译器不能识别阿,怎么办呢?不要着急,编译器虽然不 intcolumn=3://///暂假定列数是2,这个可 以在运行 能识别,但是我们完全可 以不把它当作一个二维数组,而是把 时刻决定: 它当作一个普通的指针,再另外加上两个参数指明各个维数, void**ptdhead=NULL://////////在后面说 明为什么 然后我们为二维数组手工寻址,这

您可能关注的文档

文档评论(0)

天马行空 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档