![]() |
1
2
使用
关键区别在于
首先,考虑定义为以下内容的数组:
鉴于此,当表达式
现在考虑使用指向指针的指针实现的二维数组,如下代码所示:
(我们假设
鉴于此,当表达式
脚注
1.
类型为的数组的表达式
类型
转换为指向数组第一个元素的指针,除非它是
|
![]() |
2
2
您的阵列
例如,定义如下
是一个由两个元素组成的数组,每个元素依次是一个由三个元素组成的数组
在记忆中看起来像这样 +----------+----------+----------+----------+----------+----------+ | aa[0][0] | aa[0][1] | aa[0][2] | aa[1][0] | aa[1][1] | aa[1][2] | +----------+----------+----------+----------+----------+----------+
关于指针算法,可能会让您感到困惑的部分是针对任何数组(或指针!)
使用上面没有数组的“公式”,可以得到
显示的表达式得到了什么,没有数组
你的表情,在表格上
现在
这
可以使用为数组编制索引
使用指向指针的指针实现的“二维”数组(实际上不是)也称为
jagged array
,并且它不必是连续的。这意味着
再举一个简单的例子:
上面的代码创建了一个类似的“二维”数组
+-------+-------+ | pp[0] | pp[1] | +-------+-------+ | | | v | +----------+----------+----------+ | | pp[1][0] | pp[1][1] | pp[1][2] | | +----------+----------+----------+ v +----------+----------+----------+ | pp[0][0] | pp[0][1] | pp[0][2] | +----------+----------+----------+
对于外部阵列,
由于可以对指针使用数组索引语法,因此
而
|
![]() |
Community wiki · 如何调试Python内存故障? 1 年前 |
![]() |
tuskiomi · 如何为参考提供明确的锈蚀寿命? 2 年前 |
![]() |
cobb208 · Malloc正在为释放指针引发错误 2 年前 |
![]() |
mo FEAR · C++ STL映射是否在创建后移动了一个值的位置? 2 年前 |
![]() |
Pooyanoss · 覆盖类的堆栈分配实例 2 年前 |
![]() |
TheKing · 为什么数组的地址可以有负值? 2 年前 |
![]() |
Http2inc · 如何从内存中解析这些二进制数据? 2 年前 |
![]() |
tifrel · 如何检查已编译类型的表示形式? 2 年前 |
![]() |
Gabriele · 释放GSL矩阵的正确方法是什么? 6 年前 |
![]() |
Makogan · 3D纹理大小影响程序输出,不会引发错误 6 年前 |