遇到的错误是:“{”标记之前的预期表达式。为什么会这样呢?
#include <stdio.h>
int main ()
{
struct test
{
char a[100];
int g;
} b[2];
b[0] = {"Maharshi", 5};
b[1] = {"Hello", 6};
printf("%u %u", &b[0], &b[1]);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
您不能将初始值设定项列表分配给已定义的对象。
b[0] = {"Maharshi", 5};
b[1] = {"Hello", 6};
Run Code Online (Sandbox Code Playgroud)
但是你可以通过复合文字来做你想做的事:
b[0] = ( struct test ){ "Maharshi", 5 };
b[1] = ( struct test ){ "Hello", 6 };
Run Code Online (Sandbox Code Playgroud)
或者在定义数组时使用初始值设定项列表。