结构体是什么
结构体是对有共同属性的一类具体对象的总结,是一个可以自己创造组合类型,是一个自定义类型
如:一个人可以从名字、电话、性别、年龄等去描述
结构体的创建
struct book//书 book为结构体类型
{
//3个成员名
char name[30];//书名
float price;//定价
char id[20];//书号
}b1,b2;//也可以这样创建变量(b1,b2为结构体变量)
typedef struct Stu
{
char name[20];//名字
int age;//年龄
char sex[5];//性别
char id[20];//学号
}Stu;//把struct Stu 简化为Stu
结构体变量的定义与初始化
int main()
{
struct book a1={"人类简史",20,"C1002004"};
struct book a2={"世界简史",42.5f,"H23004001"};
struct book a3={"宇宙简史",36.3f,"F02004100"};
Stu a=.....;
return 0;
}
结构体的打印
打印a1的内容
1.直接打印
int main()
{
printf("书名:%s\n", a1.name); //用"."访问。变量名.成员名
printf("定价:%f\n", a1.price);
printf("书号:%s\n", a1.id);
}
2.指针的方式(定义一个函数Print)
主函数中
int main()
{
struct book a1={"人类简史",20,"C1002004"};
struct book a2={"世界简史",42.5f,"H23004001"};
struct book a3={"宇宙简史",36.3f,"F02004100"};
Print(&a1);//定义在下面。把想要打印的地址传入
return 0;
}
第一种定义
void print(sruct book *pa)
{
printf("书名:%s\n",(*pa).name);
printf("定价:%f\n",(*pa).price);
printf("书号:%s\n",(*pa).id);
}
第二种定义
void print(sruct book *pa)
{
printf("书名:%s\n", pa->name);//相当于(*pa).name
printf("定价:%f\n", pa->price);
printf("书号:%s\n", pa->id);
}
更改结构体内容
1.数字类型
a.price = 100.0f;
2.数组类型用strcpy
strcpy(a.name,"数据结构");
上一篇:初谈指针变量