还剩33页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
《结构体与共用体》PPT课件•结构体的定义与特点•结构体的创建与使用•结构体的嵌套•共用体的定义与特点目•共用体的创建与使用•结构体与共用体的区别与联系录contents01结构体的定义与特点结构体的定义结构体是一种用户自定义的数结构体由一组不同类型的成员结构体可以包含基本数据类型、据类型,用于存储不同类型的组成,每个成员都有自己的名数组、指针等类型的数据数据称和数据类型结构体的特点结构体提供了更大的灵活性,允结构体可以包含不同类型的数据,结构体可以包含指针成员,用于许用户自定义数据结构以满足特使得数据存储更加紧凑和高效实现复杂的数据结构,如链表、定的需求树等结构体的应用场景01020304结构体在各种领域都有在数据结构中,结构体在文件处理中,结构体在网络编程中,结构体广泛的应用,如数据结可以用于实现各种复杂可以用于存储文件的各可以用于存储网络协议构、文件处理、网络编的数据结构,如链表、种信息,如文件头、文的各种信息,如IP地址、程等栈、队列等件块等端口号等02结构体的创建与使用结构体的创建•结构体的定义结构体是一种自定义的数据类型,可以包含多个不同类型的数据成员在C语言中,使用struct关键字来定义一个结构体结构体的创建•结构体的语法定义结构体的语法如下结构体的创建```cstruct结构体名{数据类型1成员名1;结构体的创建•数据类型2成员名2;结构体的创建•...结构体的创建};```结构体的实例化在定义结构体后,可以使用该结构体来声明变量,即创建结构体实例例如结构体的创建```cstruct Student{结构体的创建int id;char name
[20];float score;结构体的创建};struct Studentstu1;//声明一个Student类型的变量stu1```结构体成员的访问访问结构体成员的方式通过点号`.`来访问结构体实例的成员例如,`stu
1.id`表示访问`stu1`变量的`id`成员注意事项访问结构体成员时,需要注意数据类型和变量名的正确性,否则会导致编译错误结构体的初始化初始化方式在声明结构体变量时,可以直接对成员进行初始化赋值例如注意事项在初始化结构体变量时,需```c要注意初始化的顺序和数据类型,确保每个成员都被正确赋值```struct Studentstu1={1001,Tom,
85.5};//初始化stu1变量的成员03结构体的嵌套什么是嵌套结构体01嵌套结构体是指在一个结构体内部定义另一个结构体,形成层次化的数据结构02嵌套结构体允许在一个结构体中包含其他结构体类型的成员,使得数据组织更加灵活和复杂如何定义嵌套结构体在定义嵌套结构体时,需要在主结构体的定义中包含另一个结构体的类型名和变量名嵌套结构体的定义方式与普通结构体的定义方式相同,只是在主结构体的定义中添加了嵌套的结构体类型和变量嵌套结构体的应用嵌套结构体在数据表示和组织方面非在一些复杂的系统中,嵌套结构体可常有用,可以用来表示复杂的数据结以用来实现模块化设计,提高代码的构,如树、图等可读性和可维护性嵌套结构体还可以用于实现数据的封装和隐藏,使得数据的访问和使用更加安全和方便04共用体的定义与特点共用体的定义共用体是一种特殊的数据类型,共用体类型的变量在内存中占据共用体类型的变量可以用来存储可以用来存储不同类型的数据,一段连续的存储单元,用来存放不同类型的数据,但在任何时刻但在任何时刻只能存储其中的一不同类型的数据只能存储其中的一种类型的数据种类型的数据共用体的特点共用体类型的变量在内存中占据一段共用体类型的变量可以用来存储不同连续的存储单元,用来存放不同类型类型的数据,但在任何时刻只能存储的数据其中的一种类型的数据共用体类型的变量可以用来存储不同共用体类型的变量可以用来存储不同类型的数据,但在任何时刻只能存储类型的数据,但在任何时刻只能存储其中的一种类型的数据其中的一种类型的数据共用体的应用场景共用体类型的变量可以用来存储不同类共用体类型的变量可以用来存储不同类共用体类型的变量可以用来存储不同类型的数据,但在任何时刻只能存储其中型的数据,但在任何时刻只能存储其中型的数据,但在任何时刻只能存储其中的一种类型的数据的一种类型的数据的一种类型的数据05共用体的创建与使用共用体的创建定义共用体类型使用`union`关键字定义一个共用体类型,例如`union DataType{int i;float f;char c;}`创建共用体变量使用`union DataTypedata;`来创建一个名为`data`的共用体变量共用体成员的访问访问共用体成员通过点运算符(`.`)来访问共用体成员,例如`data.i=10;`注意点由于共用体中所有成员共享同一块内存空间,因此一次只能存储一个成员的值共用体的初始化使用大括号初始化可以使用大括号对共用体进行初始化,例如`union DataTypedata={.i=10};`注意点由于共用体所有成员共享同一块内存空间,因此只能对其中一个成员进行初始化,其他成员将被初始化为006结构体与共用体的区别与联系结构体与共用体的区别定义01结构体是由多个不同或相同类型的数据组成的聚合类型,每个数据称为结构体的成员共用体则是一种特殊的数据结构,它允许在相同的内存位置存储不同的数据类型成员数量02结构体的成员数量是固定的,而共用体的成员数量可以动态变化内存分配03结构体的内存分配是连续的,而共用体的内存分配是不连续的结构体与共用体的联系内存共享在共用体中,多个数据成员在内存中共享同一块空间,这意味着一个成员的改变会影响其他成员而结构体的成员各自拥有独立的内存空间,互不干扰类型一致性在共用体中,所有成员的类型必须相同,而结构体的成员类型可以不同选择结构体还是共用体的考虑因素需求如果需要存储多个不同类型的数据并且需要保证每个数据的完整性,则选择结构体如果需要在相同的内存位置存储不同的数据类型,并且对数据的完整性和独立性要求不高,则可以选择共用体以节省内存空间性能由于结构体的内存分配是连续的,因此在访问结构体成员时,内存访问速度较快而共用体的内存分配是不连续的,可能导致内存访问速度较慢可读性和维护性结构体的定义和成员的顺序有关,如果需要调整成员的顺序,可能会导致代码的可读性和维护性降低而共用体的定义和成员的顺序无关,因此代码的可读性和维护性较好THANKS感谢观看。
个人认证
优秀文档
获得点赞 0