#include <stdio.h>
int main()
{
typedef struct s
{
int a;
int b[5];
char c[2];
}st;
st vs[1];
vs[0] = {1,{1,2,3,4,5},{'c','d'}};
printf("%d:a\n",vs[1].a);
printf("%d:b[0]\t %d:b[4]\n",vs[0].b[0],vs[0].b[4]);
printf("%c:c[0]\t %c:c[1]\n",vs[0].c[0],vs[0].c[1]);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
为什么这不起作用?
上
gcc -o main *.c
Run Code Online (Sandbox Code Playgroud)
我收到这个错误
main.c:在函数'main'中:main.c:15:12:错误:'{'标记vs [0] = {1,{1,2,3,4,5}之前的预期表达式,{'c ", 'D'}};
但如果我有这个:
#include <stdio.h>
int main()
{
typedef struct s
{
int a;
int b[5];
char c[2];
}st;
st vs[] = {
{1,{1,2,3,4,5},{'c','d'}}
};
printf("%d:a\n",vs[0].a);
printf("%d:b[0]\t %d:b[4]\n",vs[0].b[0],vs[0].b[4]);
printf("%c:c[0]\t %c:c[1]\n",vs[0].c[0],vs[0].c[1]);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
有用.这是什么逻辑.
如何使用st vs [1]方法使其工作?