第九章
结构体
9.1结构体的概念
结构体是一种可以由我们自己定义的数据类型
#include <stdio.h>
struct student{
int num;
int score;
float average;
};
int main(void){
//定义变量,存放学生的序号、成绩、平均分
struct student Tom;//Tom是变量,struct student是数据类型
struct student class4[50];
return 0;
}
9.2结构体的定义
#include <stdio.h>
//定义一个结构体,包含学生的学号,C语言成绩,mySQl成绩,PS成绩,平均分
struct student{//student是结构体名称
int num;
int C_score;
int PS_score;
int mySQL_score;
float avg;
};
int main(void){
return 0;
}
9.3结构体变量的定义
#include <stdio.h>
//定义一个结构体,包含学生的学号,C语言成绩,PS成绩,平均分
struct student{//student是结构体名称,里面的变量不能赋初值
int num;
int C_score;
int PS_score;
float avg;
};
int main(void){
//struct student是类型名,Tom是变量名
struct student Tom = {10,90,98,94.5};
Tom.num = 12;
Tom.C_score = 95;
Tom.PS_score = 96;
Tom.avg = 95.5;
printf("序号:%d\n",Tom.num);
printf("C语言成绩:%d\n",Tom.C_score);
printf("PS成绩:%d\n",Tom.PS_score);
printf("平均分:%f\n",Tom.avg);
return 0;
}
#include <stdio.h>
struct student{//student是结构体名称,里面的变量不能赋初值
int num;
int C_score;
int PS_score;
float avg;
}Jerry;//Jerry是结构体变量
int main(void){
return 0;
}
示例
#include <stdio.h>
//定义一个结构体,包含学生的学号,三门课的成绩,平均分
struct student{//student是结构体名称,里面的变量不能赋初值
int num;
int score[3];
float avg;
};
int main(void){
struct student Tom = {10,{90,80},85.5};//==>Tom的学号三门课成绩平均分分别是:10,90,80,0,85.5。一般建议使用这种赋值方法
struct student Jim = {10,90,80,85.5};//==>Jim的学号三门课成绩平均分分别是:10,90,80,85,0
printf("序号:%d\n",Jim.num);
printf("成绩1:%d\n",Jim.score[0]);
printf("成绩2:%d\n",Jim.score[1]);
printf("成绩3:%d\n",Jim.score[2]);
printf("平均分:%f\n",Jim.avg);
return 0;
}
9.4typedef的使用
#include <stdio.h>
//typedef 已有的类型名 别名;
typedef int TYPE;//要加分号
#define SIZE 5 //宏定义不需要加分号
int main(void){
int a[SIZE];
TYPE b;//相当于int b;
return 0;
}
9.5结构体数组