boy1.name[20]="Zhang ping";此形式不对,name是数组,数组在初始化时可以写成name[20]="Zhang ping";但是定义之后在函数的执行部分中就不能这样写了,可以用字符串拷贝函数,即写成strcpy(boy1.name,"Zhang ping");c[2]={1,2}错误,要逐个元素赋值。写成e.c[0]=1;e.c[1]=2;或者在定义结构体变量e时初始化:struct a e={2,'f',1,2,1.23};