3

代表double (*foo)[2]什么[2]?以及如何将这样的数组转换为 C 中的 float* 数组?

4

2 回答 2

10
double (*foo)[2]

foo是一个指向两个double元素的数组的指针。

例如:

double bla[2];
double (*foo)[2] = &bla;
于 2012-06-04T18:24:15.450 回答
3

要回答问题的第二部分,您将无法将其转换为浮点数组。您将需要声明一个新的浮点数组并显式转换每个成员。

例如,

float bar[] = {(float)(*foo)[0], (float)(*foo)[1]};

此外,为了补充第一部分的答案,我发现这个链接和他所谓的左右规则对于弄清楚一个令人困惑的声明意味着什么非常宝贵。

于 2012-06-04T18:42:05.010 回答