C++自定义数据类型:结构体及其应用

需积分: 29 6 下载量 98 浏览量 更新于2024-07-13 收藏 486KB PPT 举报
"该资源主要介绍了C++中的自定义数据类型,特别是结构体(struct)的定义和使用方法。通过示例程序展示了如何定义结构体类型以及如何引用结构体成员。" 在C++中,自定义数据类型允许程序员根据需求创建新的复合数据类型,结构体就是其中一种重要的方式。结构体可以将不同类型的数据有序地组合在一起,形成一个新的数据类型。在提供的描述中,程序`cout<<sizeof(Date)<<endl;`输出了结构体`Date`的大小,结果为12字节,这表明结构体占用的内存空间等于其所有成员占用的空间之和。 结构体的定义语法如下: ```cpp struct 结构体名 { 成员类型 成员名1; 成员类型 成员名2; ... }; ``` 在这个例子中,定义了一个名为`Date`的结构体,包含三个整型成员`year`、`month`和`day`。 在C++中,定义结构体类型后,可以按照以下几种方式来声明和初始化结构体变量: 1. 先定义结构体类型,然后声明变量: ```cpp struct Student { int num; char name[20]; char sex; int age; float score; char addr[30]; }; Student student1, student2; ``` 2. 在定义类型的同时定义变量: ```cpp struct Student { int num; char name[20]; char sex; int age; float score; char addr[30]; } student1, student2; ``` 3. 直接定义结构体类型变量,不出现结构体名: ```cpp struct { int num; char name[20]; char sex; int age; float score; char addr[30]; } student1, student2; ``` 在内存中,结构体类型的变量按照其成员的顺序排列,所占内存空间的大小是所有成员所占空间的总和。每个成员可以单独被引用和赋值,如`student1.num = 123;`。结构体的成员也可以是另一个结构体类型,如`struct Student`中包含了一个`Date`类型的成员`birthday`,这样就形成了嵌套结构。 此外,结构体成员可以与程序中其他变量的名称相同,因为它们分别存储在不同的内存位置,互不影响。例如,即使定义了`int num`,它与`struct Student`中的`num`成员是完全独立的。 结构体类型的变量在编译时分配内存,而结构体类型本身并不占用内存,只是一种类型定义。因此,使用结构体可以更有效地组织和管理复杂的数据结构,提高代码的可读性和复用性。在实际编程中,结构体广泛应用于各种场景,如表示日期、时间、地址、用户信息等。