结构:
是一种由程序员设计的复合数据类型,它由若干个其它类型的成员组成,用于描述事物的各项属性。
设计结构:
struct 结构名 // 结构名一般首字母大写
{
成员类型 成员名;
...
};
定义结构变量:
struct 结构名 结构变量名;
初始化结构变量:
顺序初始化:初始化数据与成员的顺序一一对应。
struct 结构名 结构变量名 = {v1,v2,v3,...};
指定成员初始化:
struct 结构名 结构变量名 = {
.成员名1 = 初始化数据1,
.成员名2 = 初始化数据2,
...
};
访问成员:
结构变量.成员名;
结构指针->成员名;
注意:可以使用typedef重定义简短的类型名。
typedef struct 结构名
{
成员类型 成员名;
...
}结构名;
练习1:设计一个教师结构体(姓名,工龄,工号,科目,...),定义教师结构变量,使用scanf从终端输入各成员的值,然后使用printf结构变量。
#include <stdio.h>
#include <stdlib.h>
typedef struct Student
{
int id;
char name[20];
int score_cnt;
float score[]; // 柔性数组
}Student;
void show_stu(Student* stup)
{
printf("%d %s",stup->id,stup->name);
for(int i=0; i<stup->score_cnt; i++)
{
printf(" %g",stup->score[i]);
}
printf("\n");
}
int main(int argc,