1.结构体
为什么需要结构体?什么是结构体?变量+素组
在没有结构体之前,起初最简单的时候,只需要使用基本类型(int char float dooubt)来定义单个变量,需要几个变量就定义几个。后来情况复杂了,有时候需要意义相关的变量(比如需要存储一个班级的学生分数)这个时候数组就出现了。数组解决了需要很多类型相同、意义相关的变量的问题。但是数组是有限制的,数组最大的不足在于,一个数组只能存储多个数据类型相同的变量。所以碰到刚要封装几个类型不同的变量的时候,数组就无能为力了。这个时候就需要结构体。
什么是结构体?
结构体是一个集合,就是一种里面包含很多个元素,这些元素的数据类型可以相同,也可以不相同。所以结构体就是数据封装的方法。
include<stdio.h>
//1、结构体类型的定义是在函数外边,不是里面
//2、结构体定义的是一个新的组合类型,而不是变量,也不消耗内存
struct student
{
char name[20]; //学生姓名
unsigned int num; //学号
int ismale; //性别
}; //这里注意还有一个;
int main(void)
{
struct student s1; //s1是一个变量,类型是struct student
//给结构体变量赋值
s1.name[0]='J';
s2.name[1]='i';
s3.name[2]='m';
s4.name[3]='\0';
s1.num = 123 ;
s1.ismale= 1 ;
//打印检验
printf("s1.name = %s,s1.num = %d,s1.ismale = %d.\n",s1.name,s1.num,s1,ismale);
return 0;
}
数据结构:把庞大复杂的数据用一定的方式组织管理起来,便于操作(查找,增加,删除等)这就叫数据结构。
结构体与数组关系:数组是一种特殊的结构体,特殊之处在于封装的各个元素类型相同。
使用结构体的步骤:
第一步:定义结构体类型。结构体类型的定义是在函数外面(函数外面==全局)。
第二步:使用第一步的类型来定义结构体变量。
第三步:使用变量。实际上使用结构体变量的时候,使用的是结构体变量中封装的各个子元素。