C++ Primer 学习笔记:动态数组
来源:互联网 发布:韩国汉字 知乎 编辑:程序博客网 时间:2024/04/30 05:28
定义:
int *pia = new int[10]; // array of 10 uninitialized ints
此 new 表达式分配了一个含有 10 个 int 型元素的数组,并返回指向该数组第一个元素的指针,此返回值初始化了指针 pia。
在自由存储区中创建的数组对象是没有名字的,只能通过其地址间接地访问堆中的对象。
注意:C++使用new和delete在堆(自由存储区)上分配和释放动态数组。
动态数组初始化:
1.元素只能初始化为元素类型的默认值,而不能像数组变量一样,用初始化列表为数组元素提供各不相同的初值。
2.对于内置数据类型元素的数组,必须使用()来显示指定程序执行初始化操作,否则程序不执行初始化操作:
int *pia = new int[10]; // 每个元素都没有初始化
int *pia2 = new int[10] (); // 每个元素初始化为0
3.类类型元素的数组,则无论是否使用(),都会自动调用其默认构造函数来初始化:
string *psa = new string[10]; // 每个元素调用默认构造函数初始化
string *psa = new string[10](); // 每个元素调用默认构造函数初始化
动态分配空数组:
char *cp = new char[0];
之后,可以动态改变cp的维数。
动态释放:
delete [] pia;
典型使用示例:
const char *pc = "a very long literal string"; // 处理C风格字符串时使用const指针
const size_t len = strlen(pc) +1; // size_t用于数组的大小和下标
for (size_t ix = 0; ix != 1000000; ++ix) {
char *pc2 = new char[len]; // pc2指向的存储空间的内容会动态改变,因此不使用const
strncpy (pc2, pc, len); // 使用strncpy比使用strcpy安全
// do something;
delete [] pc2;
}
- C++ Primer 学习笔记:动态数组
- C++ Primer 学习笔记_14_动态数组
- c++primer学习笔记(4.1)数组
- c++primer学习笔记-----3.5数组
- C++primer学习笔记-----3.6多维数组
- C++Primer笔记--数组
- C++PRIMER学习笔记
- c++primer学习笔记
- c++primer学习笔记
- C++primer学习笔记
- c++primer 学习笔记
- C++Primer 学习笔记
- c++primer学习笔记
- C++Primer学习笔记
- C++PRIMER 学习笔记
- C++Primer学习笔记
- C++Primer学习笔记
- C++Primer学习笔记
- 近期手机市场情报汇总
- IO常用操作
- 银行知识开头篇
- 使用NetBeans进行J2ME开发系列
- 数据显示与统计
- C++ Primer 学习笔记:动态数组
- Circle Dock 桌面工具介绍
- 判断一个数组中是否包含某个字符串
- Python 开发工具 Pydev eclipse插件安装
- [转] .NET中TreeView控件的实现方式
- 第一篇
- 视频DVI信号
- 关于多线程
- Spring学习笔记