1.结构体:
struct [结构体名] { 类型 成员名1; 类型 成员名2; … 类型 成员名n; }; //方法1:先定义结构体类型,再定义结构体变量 struct student { char no[13]; int usual; int final; int overall; char level[10]; }; struct student fresher, junior; //方法2:在定义结构体类型的同时,定义结构体变量 struct student { char no[13]; int usual; int final; int overall; char level[10]; } fresher, junior; //方法3:直接定义结构体变量 struct { char no[13]; int usual; int final; int overall; char level[10]; } fresher, junior;
例题:
//冒泡法+两个结构体元素交换的操作 void sortdata() { int i,j; student temp; for(i = 0; i < N-1; i++) for(j = 0; j < N-1-i; j++) if ( stu[j].sum < stu[j+1].sum ) { temp = stu[j]; /*使用结构体变量的赋值操作*/ stu[j] = stu[j+1]; stu[j+1] = temp; } }
2.输出课程平均分
/*输出课程平均分*/ void outputaverage() { int i,j; float aver[3]={0}; printf("*********************************\n"); for(i=0; i<3; i++) for(j=0;j<N;j++) aver[i] += stu[j].score[i]; for(i=0;i<3;i++) printf("Subject%d Average:%8.2f\n", i+1, aver[i]/N); }
3.指针变量与结构体变量
struct student *p; //结构体类型名 *指针变量; p = &stu1; //指针变量名 = &结构体变量; (*p).age = 18; p -> age = 18;//两种访问形式
4.链表结构
5.动态链表
6.共用体:共用体变量的成员共用同一段内存!
7.枚举格式
enum 枚举类型名 { 枚举值列表 };//语法格式 enum Weekday {sun, mon, tue, wed, thu, fri, sat};
默认情况下,枚举值列表中的值按顺序对应0,1,2, …
如果指定某个枚举值对应的整数,则后续枚举值在此基础上加1
8.用户自定义类型
typedef int size_t; size_t i; typedef struct { int year; int month; int day; } DATE;
原文:https://www.cnblogs.com/yangyanggege/p/11107912.html