还剩24页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
《结构体和共用体》PPT课件•结构体的定义与特性•结构体的定义与创建目录•结构体的访问方式Contents•共用体的定义与特性•共用体的定义与创建•共用体的访问方式01结构体的定义与特性结构体的定义结构体是一种用户自定义的数据结构体可以包含多个不同类型的结构体的定义使用关键字类型,用于存储不同类型的数据数据成员,每个数据成员都有自`struct`,后跟结构体的名称和己的名称和类型数据成员列表结构体的特性01020304结构体的数据成员可以结构体是一种聚合数据结构体可以包含函数成结构体可以嵌套,即一是不同的数据类型,包类型,可以将多个不同员,用于实现特定的操个结构体内部可以包含括基本数据类型、结构类型的数据组合在一起作另一个结构体体、数组等结构体的应用场景01020304结构体在C语言中广泛应用于结构体可以用于封装数据和操结构体可以用于实现面向对象结构体可以用于实现链表、树处理复杂的数据结构,如学生作,提高代码的可读性和可维编程中的类和对象等复杂数据结构信息、员工信息等护性02结构体的定义与创建结构体的定义方式先定义结构体类型,再创例如`struct结构体名建变量{成员列表;};`然后使用该类型创建变量定义类型的同时创建变量`struct结构体名变量名;`结构体的创建步骤定义结构体类型初始化结构体变量确定结构体的成员,包括数据类型和根据需要,为结构体变量中的成员赋变量名值创建结构体变量使用已定义的类型创建具体的变量结构体的初始化01020304部分初始化全部初始化字符串初始化赋值列表初始化只对部分成员进行初始化,其使用大括号`{}`对所有成员进对字符数组类型的成员,可以使用逗号分隔的赋值列表进行余成员将自动赋值为0或空指行初始化使用字符串字面值进行初始化初始化,与函数参数列表类似针03结构体的访问方式直接访问直接访问是指通过结构体变量例如,如果有一个结构体变量这种方式简单明了,但需要注名直接访问其成员`struct_var`,可以直接使用意结构体成员的名称和类型`struct_var.member`来访问其成员使用成员运算符访问C语言中提供了`.`运算符来访问结构体成员使用成员运算符可以更加明确地表示访问的是结构体的成员,而不是其他类型的变量例如,`struct_var.member`使用成员运算符表示访问`struct_var`结构体的`member`成员结构体指针访问如果有一个指向结构体的指针,例如,如果有一个指向结构体这种方式在处理动态分配的结构可以通过该指针来访问结构体的`struct_var`的指针`ptr`,可以使体或者需要频繁修改结构体内容成员用`ptr-member`来访问时非常有用`struct_var`的`member`成员04共用体的定义与特性共用体的定义共用体是一种特殊的数据类型,可以共用体类型的变量在声明时必须初始用来存储不同类型的数据,但在任何化,因为其内存单元是共享的,所以给定时间只能存储其中的一种数据类只能对其中的一个成员赋值型共用体类型的变量在内存中占据一段连续的存储单元,用来存放该变量所包含的所有成员中的其中一个共用体的特性共用体类型的变量在内存中只占据所共用体类型的变量在内存中存储的是需要的最小空间,而不是所有成员所其成员变量的地址,而不是实际的值占用的空间总和共用体类型的变量可以包含多个不同共用体类型的变量不能直接访问其成类型的成员,但只能存储其中的一个员变量,需要通过指针来访问共用体的应用场景用于实现数据的压缩和打包,例如将多用于实现数据的共享和复用,例如将多用于实现数据的模拟和仿真,例如在模个不同类型的数据打包成一个共用体类个不同类型的数据定义为一个共用体类拟电路或网络传输时,可以使用共用体型的数据,以节省内存空间型的数据,以实现数据的共享和复用类型的数据来模拟不同的信号或数据包05共用体的定义与创建共用体的定义方式01共用体的定义方式是在类型名后面加上关键字`union`,例如`union DataType{}`02定义共用体时需要指定其成员,例如`union DataType{int i;float f;char c;}`共用体的创建步骤确定共用体的成员类型和数量使用关键字`union`定义共用在大括号内声明共用体的成员可以使用`typedef`关键字为共用体类型定义别名,例如体类型变量`typedef union DataType{int i;float f;char c;}DataType_t;`共用体的初始化共用体可以使用成员初始化器进行初始化,例如union DataTypedata={.i=10};也可以使用默认构造函数进行初始化,例如unionDataTypedata;data.i=10;06共用体的访问方式使用成员运算符访问直接使用点运算符.来访问共用体的成员,例如`union_variable.member_name`这种方式适用于已知共用体类型和变量名,直接访问其成员的情况共用体指针访问通过共用体指针来访问其成员,首先需要将指针指向共用体变量,然后使用箭头运算符-来访问成员,例如`union_pointer-member_name`这种方式适用于需要通过指针间接访问共用体成员的情况通过指向访问共用体成员通过一个指向共用体的指针来访问其成员,首先需要使用-运算符获取共用体的地址,然后使用.运算符来访问其成员,例如`*union_pointer.member_name`这种方式适用于需要通过指针的解引用操作来访问共用体成员的情况。