-1

我有一个问题,我被要求声明一个结构数组,里面有一个结构,如下所示:

typedef struct {
int a;
int b;
int c;
}blah;

int main()
{
    blah arr[1] = {{0, 0, 0}};
//...
}

上面的初始化是否正确?

4

2 回答 2

1

是的,完全正确。

长度为 1 的数组与包含多个元素的数组没有太大区别:它们都是聚合类型,它们的初始化应该用花括号括起来。如果你的数组有 2 个元素,初始化就像

blah arr[2] = { {0, 0, 0}, {0, 0, 0} };
于 2012-08-15T14:25:40.770 回答
0

是的。

如果要使用显式初始化程序,则无需指定大小,让编译器弄清楚:

blah arr[] = { { 0, 0, 0 } };

我还添加了空格以使嵌套更清晰。

于 2012-08-15T14:25:05.397 回答