谁能在C中解释这个结构?

时间:2013-04-21 16:40:21

标签: c pointers structure

我有这段代码

#define MAX_DIM 3
struct kd_node_t
{
    double x[MAX_DIM];
    struct kd_node_t *left, *right;
};

struct kd_node_t wp[] = {
    {{2, 3}}, {{5, 4}}, {{9, 6}}, {{4, 7}}, {{8, 1}}, {{7, 2}}
};

我不理解这种情况下的结构声明。请帮帮我

1 个答案:

答案 0 :(得分:1)

这是使用大括号初始化。

数组给出一个逗号分隔的列表,初始化数组中的每个结构(如果给出了显式大小,剩下的结构将初始化为零,我相信。)

因为它们都很相似,所以只需要取第一个,{{2,3}}

这有一个元素{2,3},它告诉您如何初始化x成员。由于只指定了两个值,因此余数将初始化为零,从而得到[2,3,0]。同样,leftright初始化为空指针。

数组中的其余结构类似地初始化。