目录
1.结构体
问:数组是相同数据的一个集合,如果不同数据的集合呢?
结构体:将不同类型的数据存放在一起,作为一个整体进行处理。
C语言使用结构体变量进一步加强了表示数据的能力。
struct 结构体名{
成员列表
};
例如: 结构类型
struct student{
类型名 int ID;
char name【20】;
}; 成员名
2.注意事项
- 结构类型与结构变量是两个不同的概念,其区别如同int类型与int型变量的区别一样。int x=10; struct student stu;
- 结构类型中的成员名,可以与程序中的变量同名,它们代表不同的对象,互不干扰 int main(){int ID=10;char name=‘a’;}
- 结构类型中的数据项,既可以是基本数据类型也可以是结构体类型。
3.结构体的使用
对于上一个struct student的结构体,使用如下:
struct student stu;
stu.id=6666;
stu.name='d';
或者如下方式
struct student stu={10,'d'};
4.typedef
语言中用关键字typedef可以为数据类型定义一个别名。如有typedef int INTEGER;,则标识符INTEGER就是int的一个别名,两者可以互换使用。
typedef创建的的符号名只限于类型,不限于值。
定义: struct student{
int ID;
char name;
}stu
使用: stu.ID=20;
typedef student{
int ID;
char name;
}stu;
stu danny;danny.ID=6666;
小结:使用typedef时,typedef并没有创建任何新类型,它只是为某个已经存在的类型提供一个“别名”,以便在程序中使用。
5.结构体指针
通过指向结构变量的指针来访问结构变量的成员,与直接使用结构变量的效果一样。一般来说,如果指针变量pointer已指向结构变量var,则以下两种形式等价:
(1)var.成员
(2)pointer->成员
注意:
(1)分量运算符左侧的运算对象,只能是结构变量,不能是指针
(2)指向运算符左侧的运算对象,只能是指向结构变量(或结构数组)的指针变量,否则出错。
6.结构体数组
结构体数组就是数组里面存放的是结构体
先声明结构体类型,再定义结构体变量名
声明结构体类型,不分配空间
定义结构体类型变量,就要分配内存空间
struct student{
int ID,age;
}stu【10】;
使用:
stu[0].ID=20;
stu[0].age=18;
stu[1].ID=15;