2

在另一个问题的答案中看到了这一点:

char (*arrs)[rowSize] = malloc(bytesPerTable);

什么是arr?/ 为什么有括号 / 这个声明的描述是什么?

4

2 回答 2

4

什么是 arr?这个声明的描述是什么?

它是一个指向 s 数组的指针,与rowSize char指向 a 的指针大不相同char

为什么有括号

因为没有它们,它将是一个指向char.

于 2012-08-17T11:56:19.227 回答
2

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;
于 2012-08-17T12:08:13.073 回答