我有这段代码
#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}}
};
我不理解这种情况下的结构声明。请帮帮我
答案 0 :(得分:1)
这是使用大括号初始化。
数组给出一个逗号分隔的列表,初始化数组中的每个结构(如果给出了显式大小,剩下的结构将初始化为零,我相信。)
因为它们都很相似,所以只需要取第一个,{{2,3}}
。
这有一个元素{2,3}
,它告诉您如何初始化x
成员。由于只指定了两个值,因此余数将初始化为零,从而得到[2,3,0]
。同样,left
和right
初始化为空指针。
数组中的其余结构类似地初始化。