struct student
{
char name[20];
char sex;
int age;
} s1;
这句定义了一个结构体变量s1,这个s1不是基本数据类型的变量。它是一个包含三个部分(字符数组、单字符、整型)的复合数据类型。它的第一个组成部分,就是那个 char name[20],又是由基本数据类型char组成的。你不用太纠结,s1就是一个复合体,里面包含了三种类型的数据。使用(比方赋值、输出等)的时候,你得把他拆开来操作。就是是后面那三行了。
2.
第一个问题你若理解开了,那第二个问题你自然就明白了。
你定义了一个数组,该数组元素由一个一个的结构体变量组成。如下:
struct student
{
char name[20];
char sex;
int age;
} s2[10];
那么当你要使用该数组中第5个元素中的sex变量时,是不是得这样使用
printf("%c",s2[4].sex);
scanf("%s",s2[4].name);
用大白话给你说的,不知道这样子你能不能理解。