我正在查看遇到此行代码的代码。
如果我认为这段代码是二维数组的数组(我正在传递2d数组的数组),然后修改了参数,则我将无法理解在函数中声明为unsigned char (*data)[int][int]
的参数代码为unsigned char *data[int][int]
,这样应该行不通吗?。
答案 0 :(得分:6)
不,它不起作用。因为这些声明声明了不兼容的不同类型。
unsigned char (*data)[2][2]
:将数据声明为指向未签名字符2的数组2的指针(来自https://cdecl.org/)
+---+ +---+---+
| -+----->| | |
+---+ +---+---+
data | | |
+---+---+
unsigned char [2][2]
unsigned char *data[2][2]
:将数据声明为指向未签名字符的指针2的数组2的数组。
+---+---+
unsigned char <---+- | -+---> unsigned char
+---+---+
unsigned char <---+- | -+---> unsigned char
+---+---+
data