2D阵列声明阵列中的模棱两可
Ambiguity in array of 2d arrays declaration in C
我正在浏览遇到此代码行的代码。我无法理解unsigned char (*data)[int][int]
在函数中声明为参数,如果我将此代码视为二维数组的数组(我正在通过2D数组的数组),然后如果我将代码修改为unsigned char *data[int][int]
,则这不起作用?
不,它行不通。因为这些声明声明了不同类型的不同类型。
unsigned char (*data)[2][2]
:将数据声明为 dray 2的指针 2的2个数组2的char char(来自https://cdecl.org/)
+---+ +---+---+
| -+----->| | |
+---+ +---+---+
data | | |
+---+---+
unsigned char [2][2]
unsigned char *data[2][2]
:将数据声明为 array 2 of Pointer
+---+---+
unsigned char <---+- | -+---> unsigned char
+---+---+
unsigned char <---+- | -+---> unsigned char
+---+---+
data
相关文章:
- OpenMP阵列性能较差
- 如何将三维尺寸不固定的三维阵列展平为一维阵列
- 当我的阵列太大时出现分段错误
- 位阵列上的快速AND运算
- 阵列必须使用大括号封闭的初始器进行初始化
- "Inverse SFINAE"避免模棱两可的过载
- 没有从阵列<float>到阵列<int>的可行转换
- 操作员C++的模棱两可的过载
- 模棱两可的重载模板
- C++动态安全 2D 交错阵列
- 将平面阵列重塑为复杂的特征类型
- 如何使用英特尔 PIN 捕获阵列的所有负载?
- 为什么我能够为阵列分配比计算机实际拥有的内存更多的内存
- 库特<<恩德尔;不适用于打印 2D 阵列
- 数组类 阵列的打印输出
- 调用重载的"<大括号括起来的初始值设定项列表>"对于对来说就足够了是模棱两可的
- 从较小的阵列到较大的阵列的元素级转换
- 仅在大型阵列上出现合并排序分段错误
- 从阵列C++中删除重复项
- 2D阵列声明阵列中的模棱两可