为什么以下内容是错误的,正确的语法是什么?
struct a {
int b[4];
};
int c[4];
struct a a = {.b = &c};
a.b
不应该是int *
或int[]
类型,为什么是int
类型?
(注意,
struct a
的声明不能更改。)
您的评估是正确的:
b
应该具有类型int *
或int const *
,但您应该从初始值设定项中删除&
:
struct a {
int *b;
};
int c[4];
struct a a = { .b = c };
或等价:
struct a a = { c };