结构体的定义-引用-初始化
声明一个结构体类型的一般形式为
struct 结构体名
{成员列表};
如:
struct student {
int num; char name[20]; char sex;
int age; float score; char addr[30];
};
struct student student1, student2;
先声明结构体类型再定义变量名,例如:
struct student student1, student2;
结构体的定义
# include <stdio.h>
# include <stdlib.h>
# include <string.h>
//为了避免浪费空间,小字节数据放在一起
struct student_t {
int num;
char name[20];
char sex;
int age;
float score;
char addr[30];
};
int main() {
struct student_t s = { 1001,"lele",'M',20,98.5,"Shanghai" };
system("pause");
}
结构体指针
# include <stdio.h>
# include <stdlib.h>
# include <string.h>
//为了避免浪费空间,小字节数据放在一起
struct student_t {
int num;
char name[20];
char sex;
int age;
float score;
char addr[30];
};
/*
1001 lele1 1 20 98.5 Shanghai1
1002 lele2 2 20 98.5 Shanghai2
1003 lele3 3 20 98.5 Shanghai3
*/
int main() {
struct student_t s = { 1001,"lele",'M',20,98.5,"Shanghai" };
struct student_t sArr[3];
int i,ret;
printf("%d %s %c %d %5.2f %s\n",s.num,s.name,s.sex,s.age,s.score,s.addr);
for (i = 0; i < 3;++i) {
ret = scanf("%d%s %c%d%f%s",&sArr[i].num,sArr[i].name,&sArr[i].sex,&sArr[i].age,&sArr[i].score,sArr[i].addr);
}
for (i = 0; i < 3;i++) {
printf("%d %10s %c %d %5.2f %s\n", sArr[i].num, sArr[i].name, sArr[i].sex, s.age, sArr[i].score, sArr[i].addr);
}
system("pause");
}