美文网首页
C++ new多维数组

C++ new多维数组

作者: 科英 | 来源:发表于2020-05-30 19:19 被阅读0次
int *p=new int[2];
int *p=new int[2][3];  //错误
int (*p)[3]=new int[2][3];  //正确
int (*p)[4][5]=new int[2][4][5]; //正确

为啥第二行就错误呢?其实我们可以这样理解:

  1. int(p)[3]其中p是指针,这是毋庸置疑的,那这个指针指向什么类的数据呢?我们改一下写法,编程int[3] (p),是不是就很简洁明了呢?p指向的类型是int[3]。
  2. new int[2][3]返回的2个int[3]类型的数组的首地址,赋值给p。
  3. 同理,第四行p指向的类型是int[4][5],new int[3][4][5]返回的是3个int[4][5]类型的数组的首地址,赋值给p。
  4. 针对第一行的情况,如果p的一开始地址为1000,假设int占用4个字节,那么执行p++以后,p的地址为1000+4,第三行的情况,如果p的一开始地址为1000,进行p++以后,p的请值为1000+43,以此类推,第四行p++以后p的值为1000+44*5

参考:
[1] https://blog.csdn.net/u012397189/article/details/78784928

相关文章

  • 2019-07-27

    多维数组: int [][]; 多维数组的声明 ; int [] [] a = new [2][3] new [...

  • C++ new多维数组

    为啥第二行就错误呢?其实我们可以这样理解: int(p)[3]其中p是指针,这是毋庸置疑的,那这个指针指向什么类的...

  • [进阶]C++:数组形参

    使用表准库规范 传递多维数组 C++语言中实际上没有真正的多维数组,多为的多维数组实际上是数组的数组 等价定义 m...

  • [基础]C++:名字的作用域

    使用表准库规范 传递多维数组 C++语言中实际上没有真正的多维数组,多为的多维数组实际上是数组的数组 等价定义 m...

  • javase part7 - 数组内存分配

    基本类型数组只声明不new 引用类型数组堆栈分配 多维数组栈分配

  • C++多维数组

    声明形式:type name [name1] [name2][name3][name4]... 示例:int th...

  • c++ new 和delete的种种

    new/delete动态管理对象,new[]/delete[]动态管理对象数组。 C++中,把int 、char....

  • 多维数组

    创建多维数组 多维数组可以看成是数组的数组,二维数组是最基本的多维数组。 要创建多维数组,请将每个数组放在其自己的...

  • TS学习笔记(5)-多维数组

    多维数组的使用 ========= 知识点 多维数组的定义方法 多维数组的使用方法 代码

  • 4.3~1多维数组

    多维数组可以看作是数组的数组,如果将多维数组看作是比较特殊的一维数组,那数组的元素本身就是数组。在学习多维数组之前...

网友评论

      本文标题:C++ new多维数组

      本文链接:https://www.haomeiwen.com/subject/fhmhzhtx.html