C++ 指向动态分配的指针数组的指针

本文详细解析了C++中指针与数组的关系,包括指向数组的指针、指针数组及指向动态指针数组的指针的概念与用法,通过实例帮助读者掌握不同类型的指针和数组的动态内存分配。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先介绍指向数组的指针

  char *p = new char; 定义指向动态分配的字符变量的指针;
  char *p = new char[3]; 定义指向动态分配的一维字符数组的指针,p指向数组首个元素的地址,即(p+1)为数组第二个元素的地址;
  char (*p)[3] = new char[2][3]; 定义指向动态分配的二维字符数组(三行)的指针,p指向数组首行的地址,即(p+1)为数组第二行的地址;
  char (*p)[9][8] = new char[7][9][8]; 定义指向动态分配的三维字符数组的指针(7个9列8行的二维数组),p指向首个二维数组的地址,即(p+1)为第二个二维数组的地址;
  同样的,char数据类型可换成其他数据类型,比如Point类类型,例:
  Point *p = new Point[2]; 定义指向动态分配的一维Point类对象数组的指针。

再介绍指针数组
  这里只举例一维指针数组:Point *p[2]; 定义一个Point类对象的数组,数组里的两个元素都是指向Point类对象的指针(p[0], p[1])。

最后,指向动态指针数组的指针
  int *p = new int *[10];//错误
  int **p = new int *[10];//正确
 new int *[10]表示动态生成一个包含10个int型指针的数组,要定义指向指针数组的指针p,那么p也就是指向指针数组首元素,而指针数组首元素是一个int型指针,所以p就是指向int型指针的指针,即指向指针的指针。要定义指向指针的指针,就要使用T **p的格式。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值