C语言之结构体
1.结构体的定义
例如,定义单个类型,但是定义多个类型呢?
#include<stdio.h>
int main()
{
int num=0;
int score=0;
float avg=0;
return 0;
}
当定义结构体后
#include<stdio.h>
struct student
{
int num;
int score;
float avg;
}
int main(void)
{
struct student Tom;
struct student class4[50];
return 0;
}
里面存放50个同学的学号,成绩,平均分;
2.结构体的语法;
struct 结构体名字
{
成员列表
};
结构体可以包含多个基本类型
访问成员的规则
1.结构体普通变量通过“.”来访问,例如:Tom.num;
2.结构体变量指针通过“->来访问成员”,例如:p->id;
结构体变量的定义
怎么用呢?
#include<stdio.h>
struct student
{
int num;
int c_score;
int ps_score;
}
int main()
{
struct student Tom={10,90,98,94.5};//可以跟数组一样直接赋值
struct student jiu;
jiu.num=80;
jiu.c_score=60;
jiu.ps_score=80;
return 0;
}
结构体里面不能直接赋初值,但是可以跟主函数里,在主函数里面赋值 跟数组差不多.
但是可以省略结构体名
struct
{
数据类型 成员变量名;
}变量名列表
结构体变量只能定义一次
但是定义过后,怎么输出呢
printf("序号:%d",tom.num);
3.typedef的使用
1.他不是创造一个类型,而是给已有的类型取一个别名(创造外号)
可以在程序里这样用
定义后,原来的结构体也可以用·
4.结构体数组(重要!!!)
1.先声明,后定义+
struct 结构体名
{
数据类型 成员变量名;
数据类型 成员变量名;
数据类型 成员变量名;
}
int main()
{
struct student class[5];
return 0;
}
2.再声明的同时定义
3.结构体数组初始化
语法
struct 结构体名 数组名[数组长度]={初值列表};
return 0;
}
2.再声明的同时定义
[外链图片转存中...(img-398jYNJu-1705655237223)]
3.结构体数组初始化
语法
struct 结构体名 数组名[数组长度]={初值列表};