C语言结构体
结构体的定义:使用关键字struct 结构名 { };来定义
例如:定义一个学生身份的结构体:
#include<stdio.h>
#define maxsize 10
struct date{
int year,month,day;
};
struct student{
char name[maxsize];
char ID[maxsize];
int calss;
char major[maxsize];
struct date birthday; //结构体中可以套用结构体
};
main(){
struct student std={"YGJ","D11714022",2017,"shengwu",{2019,1,1}
},*ps;
ps=&std;
}
定义结构体的变量:
引用结构体当中的数据:
1)结构名称.成员名称(std. name)
2) 指针变量->name
3)(*ps).成员名
printf("%s\n",std.name);
printf("%s\n",std.ID);
printf("%d\n",std.calss);
printf("%s\n",std.major);
printf("%d\n",std.birthday.year);
printf("%d\n",std.birthday.month);
printf("%d\n",std.birthday.day);
结构体的定义位置:
1)在main()函数之前,,即全局有效,
2)在main()函数之中,,即只在main()函数中有效
3)不能定义在main()函数后面,
用户自定义类型:typedef (个人理解就是将一个数据类型重命名,,包括系统定义的数据类型:int,char...)
例如,上面自定义的 struct student 类型,,每次使用数据类型名称太长
当然也可以这样: