指向二维数组的指针
Pointer to a 2 D Array
假设我有一个 2 D 数组 int m[3][4]如果类型定义为
typedef int array[4];
array *ptr = m;
这是什么意思?它是指向 4 个元素数组的指针吗?还是 4 个指针的数组?
当我们cout << ptr or cout << *ptr
时,它会打印相同的地址。这怎么可能?
ptr 是指向 int 类型的四个元素的数组的
指针。 m 是 3 个类型元素的数组(int 类型的四个元素的数组)。给你一张图片 - m 是一个由 3 个数组类型的元素组成的数组。这就是 ptr 初始化为 m 的原因 - 没有问题,因为作为数组的"m"隐式转换为指向该数组中第一个元素的指针。
PTR 是指向元素数组的指针。以便打印该指针。当使用 *ptr 时 - 你会得到一个数组,它再次隐式转换为指向数组第一个元素的指针,这又是相同的起点 - 所以你得到相同的值。
由于一切都从同一点开始,因此您将获得相同的值。当一个人在指针上做++时,事情会开始区分。我就把这个留给你了。
查看顺时针/螺旋规则。阅读本文后,您可以将声明读作指向类型别名array
的指针,换句话说,指向四个整数数组的指针。
根据"顺时针/螺旋规则",ptr 是指向 4 int 数组的指针。
相关文章:
- 为什么指针在对二维数组进行排序时无法正常工作?
- 坚持将双指针管理的内存复制到二维数组
- 二维数组中的指针算术
- 为什么这个指针到指针的二维数组像这样分配新的 int
- C++ ->尝试逐字阅读一行文本。如何使指针等效于用于存储输入的当前二维数组
- C++ 二维数组和指针引用
- 指向二维数组的指针
- 如何将二维数组转换为指针中的指针
- 通过指针将二维数组传递给 c++ 中的函数
- 如何在指针表示法和数组表示法中循环遍历二维数组
- 存储二维数组指针的方法是什么
- 二维数组指针
- 从行指针访问二维数组的行索引
- 从函数返回指向二维数组的指针
- 将指向数据的指针作为参数传递给期望二维数组的函数
- 在 Matlab 中调用C++函数,处理二维数组,指针指针
- 无法使用双指针作为函数参数传递二维数组
- 正确分配和取消分配指向对象的指针的二维数组
- 将动态二维数组的返回指针传递给子函数并对该数组进行寻址
- 双指针二维数组声明int** seq=new int* [n];