二维数组中指针如何正确指向实例,请详细解释?

2026-05-19 22:490阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计333个文字,预计阅读时间需要2分钟。

二维数组中指针如何正确指向实例,请详细解释?

C++中指针指向二维数组实例详解,一维指针表示,指向的地址是数组第一元素的内存地址。例如:int ary[4][5]; int (*aryp)[5]=&ary; 那么ary[4][5]相当于int (*aryp)[5],以下理解如下:

C++中指针指向二维数组实例详解

一维指针通常用指针表示,其指向的地址是数组第一元素所在的内存地址,如下

int ary[4][5]; int(*aryp)[5] = ary;

那么ary[4]相当于int(*aryp),以下理解如此,但参数传递需要知道实参所在 的一维个数,所以传递的时候应该传递多一个参数,子数组的引用可以理解 为(*p),那么取元素就是(*p)[i],如下

void printVal(int(*aryp)[5],int irowCount){ for (int(*p)[5] = aryp; p != aryp + irowCount;p++) { for (size_t i = 0; i < 5; i++) { cout << (*p)[i] << endl; } } }

缺点就是:传递的时候还需要传递1维数组的个数。但扩展性强。

同样三维数组可以使用指向指针的指针的数组。通常很少用。

阅读全文

本文共计333个文字,预计阅读时间需要2分钟。

二维数组中指针如何正确指向实例,请详细解释?

C++中指针指向二维数组实例详解,一维指针表示,指向的地址是数组第一元素的内存地址。例如:int ary[4][5]; int (*aryp)[5]=&ary; 那么ary[4][5]相当于int (*aryp)[5],以下理解如下:

C++中指针指向二维数组实例详解

一维指针通常用指针表示,其指向的地址是数组第一元素所在的内存地址,如下

int ary[4][5]; int(*aryp)[5] = ary;

那么ary[4]相当于int(*aryp),以下理解如此,但参数传递需要知道实参所在 的一维个数,所以传递的时候应该传递多一个参数,子数组的引用可以理解 为(*p),那么取元素就是(*p)[i],如下

void printVal(int(*aryp)[5],int irowCount){ for (int(*p)[5] = aryp; p != aryp + irowCount;p++) { for (size_t i = 0; i < 5; i++) { cout << (*p)[i] << endl; } } }

缺点就是:传递的时候还需要传递1维数组的个数。但扩展性强。

同样三维数组可以使用指向指针的指针的数组。通常很少用。

阅读全文