在double(* foo)[2]中,[2]代表什么

时间:2012-06-04 18:22:58

标签: c primitive primitive-types

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

2 个答案:

答案 0 :(得分:10)

double (*foo)[2]

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

例如:

double bla[2];
double (*foo)[2] = &bla;

答案 1 :(得分:3)

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

例如,

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

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