采用new运算符创建一个指向二维数组的指针的两种方式

来源:互联网 发布:编程猫mod编辑器 编辑:程序博客网 时间:2024/06/06 02:40

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[] 就是一种数据类型,这是一种面向对象思想的体现。