结构类型:
结构类型将不同数据类型组合成一个整体类型,是一种“用户自定义构造数据类型”。
定义结构类型的格式如下:
其中:
struct 是关键字,表示定义的是一个结构类型;
结构类型名必须是一个合法的标识符,结构类型名省略时表示定义的是一个无名的结构体;
结构类型的成员数量不限,各成员构成成员表;数据类型可以是基本数据类型,也可以是构造数据类型;
结构类型定义的结束符;不能省略。
struct 结构类型名
{
数据类型1 1;
数据类型2 2;
… …
数据类型 n n;
} ;
C++语言程序设计教程
第5章
构造数据类型
结构与联合
1
结构与联合
例如,下面定义了一个学生信息的结构类型:
enum gender {man, ferman};
struct student
{
long no,birthday; //学号,生日
char name[22]; //姓名
gender sex; //性别
float score; //成绩
};
注:结构体及结构体变量的具体用法,有兴趣的同学请参考教材示例程序【例5-14】
C++语言程序设计教程
第5章
构造数据类型
注意:
结构类型是由多个成员类型组合而成,所以结构类型变量所占内存的大小理论上应为各
个成员所占内存大小之和;为了提高对内存的存取速度,C++分配各个结构成员的内存空
间以字为单位,以保证其地址在字的整数倍处,所以结构成员内存空间存在间隙。
定义了一个结构类型,但并没有定义变量,结构类型中的成员名既不能当作类型名也不
能当作变量使用。
score=95; //错误,成员名不能当作变量
cout<<sizeof(name); //成员名不能当作类型名
2
结构与联合
struct student
{
char name[20];
float score;
};
C++语言程序设计教程
第5章
构造数据类型
例 5-14 使用结构数组存储学生信息,按学生成绩从高到低排序
变量说明形式
结构名 结构变量名;
注意:
结构变量的存储类型概念、它的寿命、可见性及使用范围与普通变量完全一致。
说明结构变量的同时可以直接设置初值。
student stu={“liming”,90}
3
结构与联合
struct student
{
char name[20];
float score;
};
student stu;//? 如何通过键盘输入数据
student s[10];
C++语言程序设计教程
第5章
构造数据类型
例 5-14 使用结构数组存储学生信息,按学生成绩从高到低排序
cin>>>>;
而不是cin>>stu
cin>>s[i].name>
构造数据类型 来自淘豆网www.taodocs.com转载请标明出处.