什么是结构体
发布网友
发布时间:2022-04-21 09:50
我来回答
共2个回答
热心网友
时间:2022-07-11 14:18
是一种变量类型,同int,char类似。
C++提供了许多种基本的数据类型(如int、float、double、char等)供用户使用。但是由于程序需要处理的问题往往比较复杂,而且呈多样化,已有的数据类型显得不能满足使用要求。因此C++允许用户根据需要自己声明一些类型,用户可以自己声明的类型还有结构体类型(structure)、共用体类型(union)、枚举类型(enumeration)、类类型(class )等,这些统称为用户自定义类型(user-defined type,UDT)。 在一个组合项中包含若干个类型不同(当然也可以相同)的数据项。C和C++允许用户自己指定这样一种数据类型,它称为结构体。它相当于其他高级语言中的记录(record)。例如,可以通过下面的声明来建立数据类型。 struct Student//声明一个结构体类型Student { int num;//包括一个整型变量num char name[20];//包括一个字符数组name,可以容纳20个字符 char sex;//包括一个字符变量sex int age;//包括一个整型变量age float score;//包括一个单精度型变量 char addr[30];//包括一个字符数组addr,可以容纳30个字符 };//最后有一个分号 这样,程序设计者就声明了一个新的结构体类型Student(struct是声明结构体类型时所必须使用的关键字,不能省略),它向编译系统声明: 这是一种结构体类型,它包括num, name, sex, age, score, addr等不同类型的数据项。应当说明Student是一个类型名,它和系统提供的标准类型(如int、char、float、double 一样,都可以用来定义变量,只不过结构体类型需要事先由用户自己声明而已。 声明一个结构体类型的一般形式为 struct 结构体类型名{成员表列}; 结构体类型名用来作结构体类型的标志。上面的声明中Student就是结构体类型名。大括号内是该结构体中的全部成员(member),由它们组成一个特定的结构体。上例中的num,name,sex,score等都是结构体中的成员。在声明一个结构体类型时必须对各成员都进行类型声明即类型名成员名;每一个成员也称为结构体中的一个域(field)。成员表列又称为域表。 成员名的定名规则与变量名的定名规则相同 声明结构体类型的位置一般在文件的开头,在所有函数(包括main函数)之前,以便本文件中所有的函数都能利用它来定义变量。当然也可以在函数中声明结构体类型。 在C语言中,结构体的成员只能是数据(如上面例子中所表示的那样)。 C++对此加以扩充,结构体的成员既可以包括数据(即数据成员),又可以包括函数(即函数成员),以适应面向对象的程序设计。
热心网友
时间:2022-07-11 15:36
书上的定义忘记了,说下自己理解的吧。
当要用一个变量描述一个对象的多个属性时,普通的内置数据类型是表示不了的,这个时候就可以用结构体。结构体和类很相似,唯一不同的是:结构体默认是公有成员,而类默认是私有成员。
举例:当你想用一个变量同时描述一个学生的姓名和年龄时,你可以定义如下的结构体,
struct Student
{
char Name[10];
int Age;
};