在另一个问题的答案中看到了这一点:
char (*arrs)[rowSize] = malloc(bytesPerTable);
什么是arr?/ 为什么有括号 / 这个声明的描述是什么?
在另一个问题的答案中看到了这一点:
char (*arrs)[rowSize] = malloc(bytesPerTable);
什么是arr?/ 为什么有括号 / 这个声明的描述是什么?
什么是 arr?这个声明的描述是什么?
它是一个指向 s 数组的指针,与rowSize
char
指向 a 的指针大不相同char
。
为什么有括号
因为没有它们,它将是一个指向char
.
int *a[10]
- 这意味着,a
是一个由 10 个元素组成的数组,元素类型是int *
变量的大小,a
在 32 位机器中为 40 字节,在 64 位机器中为 80 字节。
int (*a)[10]
- 这意味着,a
是一个指针变量,它的大小将是 4 个字节(或 8 个字节),它可以保存一个int
大小数组的地址,10
如下所示。
int (*a)[10] = NULL;
int b[10] = {0};
a = &b;