C++中引入了new运算符,用于动态地申请空间。现简单解析其用法。
一、创建单个元素
(1) char * p = new char;
这种方式申明了一个指向一个字符空间的指针变量;然而,这个字符空间中存储什么内容这条语句并没有给出,即没有给这个字符空间初始化。
(2)char * p = new char();
这种方式先申明了一个指向一个字符空间的指针变量;并且调用构造函数为这个字符空间赋初值null;
二、创建一维数组
(1)char * p = new char[3];
这种方式创建了一个指向字符串首地址的指针变量;没有对字符串初始化;
(2)char * p = new char[3]();
创建了一个指向字符串首地址的指针变量;并对字符串初始化;
三、创建一个二维数组
(1) char **p = new char*[3];
for(int i = 0;i < 3;i++)
{
p[i] = new char[5];
}
这是大家使用比较多的一种方法。先创建一个指向字符指针数组的指针变量,然后,指针数组中的每个元素,让其指向一个字符数组;
(2) char (*p) [5] = new char[3][5];
这种方法使用比较简洁。将char[5]看作一种数据类型,先创建一个指向由char[5]构成的数组的首地址的指针变量,然后,这个由char[5]构成的数组共有3个元素。
事实上,在Java中,char[] 就是一种数据类型,这是一种面向对象思想的体现。