动态数组的使用.docx

动态数组的使用.docx

ID:59223680

大小:13.21 KB

页数:3页

时间:2020-09-09

动态数组的使用.docx_第1页
动态数组的使用.docx_第2页
动态数组的使用.docx_第3页
资源描述:

《动态数组的使用.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、#includeusingnamespacestd;/************************************************************************动态数组的创建1、数组的限制1:数组的长度固定,编译时候必须知道数组的长度;2:数组只会在定义它的程序块{}中存在,一旦跳出{}程序块里面销毁,除了全局数组;3:在不明确知道数组所需要存放的内容时候,程序员必须创建一个较大的数组,可能造成内存浪费;2、动态数组的好处1、动态数组的长度不固定,根据程序所需长度变化;2、动态数组的大小只有在运行时候才知

2、道,可以更具程序员的需要变化;3、动态数组只要分配了空间,只有显式释放,否则一直存在,与程序块的位置无关;3、动态数组的实现C语言利用macllo创建用free释放。C++利用new申请,delete释放;int*p=newint[expression];new表达式指定类型、长度(任意的表达式,运行时知道值即,不一定是常量表达式),并返回第一个内存单元的指针;内置类型的不需要初始化,类类类型会调用默认构造函数初始化;int*p=newint[20];//new10unitsuninitializeintegermemory;4、动态数组的初始化内置类型不需要初

3、始化类类型调用默认的构造函数初始化申请的单元;string*psa=newstring[10];//arrayof10emptystringsint*pia=newint[10];//arrayof10uninitializedintsint*pia=newint[20]();初始化全部元素的值为0,不能像数组那样逐个初始化,括号里面不能传参;5、const对象的动态数组如果我们在自由存储区中创建的数组存储了内置类型的const对象,则必须为这个数组提供初始化:因为数组元素都是const对象,无法赋值。实现这个要求的唯一方法是对数组做值初始化:constint*

4、pci_bad=newconstint[100];//error:uninitializedconstarrayconstint*pci_ok=newconstint[100]();//ok:value-initializedconstarrayC++允许定义类类型的const数组,但该类类型必须提供默认构造函数conststring*pcs=newconststring[100];//ok:arrayof100emptystrings6、int*p=newint[0];???创建长度为0的数组,什么鬼?告诉你!C++允许这样申请长度为0的数组;那么既然长度为0

5、,那么返回的指针p虽然是一个有效的指针变量,但是由于内存单元为0,所以不能解引用操作!!!!没什么实际意义!!7、怎么释放申请的内存?delete函数帮您实现!int*p=newint[100];delete[]p;即可!!!!*************************************************************************/intmain(void){constintarray_size=20;int*pia=newint[array_size]();//加个括号默认初始化为0int*pid=newint[arr

6、ay_size];//不加括号的未初始化,值随机;intindex=0;memset(pid,0,array_size*sizeof(int));//清空内存区memset(pia,0,array_size*sizeof(int));while(index

7、//值是不确定出现的,必须先注释掉上面的memset函数,否则都是0;index++;}/*学习初始化-----法1*/cout<<"学习初始化--------------法1"<

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。