结构体类型
- 格式:ppt
- 大小:5.18 MB
- 文档页数:32
结构体变量和结构体类型的定义1.结构体类型定义定义方式1:Typedef struct LNode { int data; // 数据域 struct LNode *next; // 指针域} *LinkList;定义方式2:struct LNode { int data; // 数据域 struct LNode *next; // 指针域};Typedef struct LNode *LinkList;以上两个定义方式是等价的,是将*LinkList 定义为struct LNode 类型,即LinkList 被定义为一个类型名。
这样就可以用LinkList 来定义说明新的变量了,如:LinkList L;即将 L 定义为 struct LNode 类型的指针变量。
2.结构体类型变量定义定义方式1:struct LNode { int data; // 数据域 struct LNode *next; // 指针域}LnodeA;定义方式2:struct LNode { int data; // 数据域 struct LNode *next; // 指针域};struct LNode LnodeA;以上两个定义方式也是等价的,这样就将LnodeA 定义为一个struct LNode 类型的变量,即 LnodeA 为一个 struct LNode 类型的变量名。
结构体内标的定义方式1.结构体,透明表区,DATA ELEMENT,DOMAIN透明表是对一个物理表的逻辑描述,透明表里有许多字段,并且定义某些字段为 PRIMARY KEY,字段里又包含 DATA ELEMENT,用来描述语言属性和技术属性。
DATA ELEMENT 中又包含DOMAIN,它是定义数据类型和字段长度。
结构体一般是用来定义一个结构变量,有临时数据的储存,没有PRIMARY KEY,结构体里包含 COMPONENT 而不是 FIELD2.Internal table 中的属性分为三种LINE TYPE ,KEY,TABLE KIND。
结构体类型的定义及所占内存的字节数。
结构体是一种自定义类型,用于表示一个或多个不同类型的变量组成的集合。
在C语言中,结构体通过关键字struct进行定义,其一般形式为:struct 结构体名{类型变量名;类型变量名;…};其中,结构体名是自定义的,且必须以字母或下划线开头。
而内部的变量名可以使用任意合法的标识符。
结构体类型在内存中的存储方式是连续的,其大小等于结构体内各成员变量占用的字节数之和,同时还可能因为内存对齐而存在所谓的填充字节。
结构体类型的定义可以带有初始值,例如:struct student{int id;char name[20];int age;} s1 = {1001, "Tom", 18};在这个例子中,定义了一个名为“student”的结构体,其中包括三个成员变量id、name、age,分别表示学号、姓名和年龄。
同时,通过定义一个名为s1的结构体变量,将该结构体的值进行了初始化。
结构体可以用于定义复杂的数据对象,比如在系统中表示一个学生、一辆车、一个订单等等,通过结构体将它们的相关属性组合起来,方便存储和管理。
需要注意的是,结构体中的成员变量可以是任意基本数据类型,也可以是数组、指针等。
如果是指针,需要特别注意指针的生存周期以及指向的内存安全问题。
综上所述,结构体是C语言中一种非常重要的自定义数据类型,它能够方便地组合多个变量,用于定义复杂的数据对象,提高程序的可读性和可维护性。
在使用过程中,需要注意结构体的定义和初始化,还需要考虑内存占用和对齐等问题,才能保证程序的正确性和高效性。
简述结构体类型和共用体类型的定义方式
结构体类型和共用体类型都是C 语言中的复合数据类型,它们可以将多个不同类型的变量组合在一起,形成一个新的数据类型,方便程序设计和数据处理。
结构体类型的定义方式如下:
struct 结构体名{
数据类型1 成员变量名1;
数据类型2 成员变量名2;
...
};
其中,结构体名为自定义的结构体类型名称,成员变量名和数据类型分别指定结构体中的每个成员变量。
结构体中的成员变量可以是任何C 语言中的数据类型,包括基本数据类型、数组、指针、结构体等。
共用体类型的定义方式如下:
union 共用体名{
数据类型1 成员变量名1;
数据类型2 成员变量名2;
...
};
共用体与结构体类似,也是由多个成员变量组成的数据类型。
不同的是,共用体中的所有成员变量共享同一块内存空间,即它们在内存中的起始地址相同,占用的总内存大小等于最大成员变量的内存大小。
因此,共用体中不同的成员变量可以存储不同的数据类型,但同一时刻只能访问其中的一个成员变量。
需要注意的是,在定义结构体类型和共用体类型时,只是定义了一个新的数据类型,并没有创建该类型的变量。
如果要使用结构体类型或共用体类型,需要先定义一个该类型的变量,然后才能对其进行操作。
一、结构体的说明及变量的定义1.结构体类型的说明由于结构体类型不是C语言提供的标准类型,为了能够使用结构体类型,必须先说明结构体类型,描述构成结构体类型的数据项(也称成员),以及各成员的类型。
其说明形式为:struct结构体名{数据类型成员1;数据类型成员n;};其中,struct是关键字,后面是结构体类型名,两者一起构成了结构体数据类型的标识符。
结构体的所有成员都必须放在一对大括号之中,每个成员的形式为:数据类型成员名;同一结构体中不同的成员不能使用相同的名字,但不同结构体类型中的成员名可以相同。
大括号后面的分号‚;‛不能省略。
如:struct person{char name[10];char sex;int age;int stature;};这里定义了一个结构体类型 person,该类型由4个成员构成。
注意:结构体类型说明中,只是描述该结构体类型的成员,说明了一种数据类型,并不分配空间。
要使用说明的结构体类型,必须定义相应的变量,才会分配空间。
2.结构体变量的定义结构体变量的定义有以下几种形式:?结构体类型的说明与定义分开。
例如说明了struct person之后,可以定义相应的变量:struct person p1, p2;定义了两个struct person变量,每个变量按结构类型中的成员分配相应的空间,每一个结构体变量所分配空间为所有成员占用空间之和。
如p1、p2所占用空间都为15byte。
?说明结构体类型的同时定义相应变量。
如:struct teacher{int number;char name[10];char sex;char profession[6];}t1, t2;在说明struct teacher类型的同时,定义了相应的两个变量t1、t2。
?直接定义结构体变量,没有结构体类型名。
如:struct{int No;char name[10];char sex;int age;}s1, s2;定义两个结构体变量s1、s2,他们都有4个成员,每个变量都占用15byte,但与第2种方式不同,没有给出结构体名,因而无法在其他地方再次使用该结构体类型定义别的变量。
C语言:结构体、共用体、枚举、类型重定义、位运算、预处理C语言除了提供象int,long,float,double、和char这样的基本数据类型之外,还支持数组、Struct、Union、和Enum数据类型。
结构体类型(struct)我们一个数组包含多个成员(元素),每个成员具有相同的数据类型。
一个结构体也能包含多个成员,但每个成员的数据类型可以不同。
例如:(a) struct Student { char Name[10], char Sex, int Age ;float Height; }(b) struct Student S1;这里,(a)定义了struct类型Student,而(b)定义了S1是Student类型的变量。
Student类型包含四个成员:Name,Sex,Age,Height,它们的数据类型分别是字符数组、字符型、整型、和浮点型。
以下是另一例子:struct DATE { int YEAR; int MONTH, int DAY ;}struct DATE d1,d2;注意,struct类型是泛指,而Student和DATE是两个特定的结构体类型。
当定义一结构体类型时,你要指定它的结构体类型名,当定义变量时,要同时写上关键字struct和结构体类型名。
定义结构体类型:我们struct 结构体类型名 { 成员1;成员2;…;成员n; }每一个成员可以是基本类型的变量、数组或指针变量,也可以是其他结构体或共用体类型的变量、数组或指针。
成员虽然不能是本结构体类型的变量,但可以是本结构体类型的指针变量。
定义结构体类型的变量:struct 结构体类型名变量名1,变量名2,…定义结构体变量时也可初始化,如:struct Student S1,S2={ “Zhang San”, ‟M‟, 19, 1.76 },S3;引用结构体类型的变量:(1)引用其成员:结构体变量名。
成员如 strcpy(,”Li Si”); S1.Sex=‟F‟; S1.Age=18; S1.Height=1.72;[0]=‟L‟; [1]=‟i‟; [2]=‟u‟; [3]=‟\0‟;S2.Height = S1.Height + 0.01 ;(1)引用整体就用变量的名字。