结构类型

编辑 锁定 讨论999
本词条缺少概述图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧!
我们把一些不同类型的数据组合成一个整体,如一个学生的学号、姓名、班级、年龄和成绩等,虽然各个属性分别属于不同的数据类型,但是它们之间密切相关,各种信息都属于同一个人。这时,可以声明一个结构型的数据类型,由多种数据类型,可以是基本数据类型,也可以是自定义的数据类型,组成一个集合。
中文名
结构类型
外文名
 structure type

目录

结构类型简介

编辑
我们把一些不同类型的数据组合成一个整体,如一个学生的学号、姓名、班级、年龄和成绩等,虽然各个属性分别属于不同的数据类型,但是它们之间密切相关,各种信息都属于同一个人。这时,可以声明一个结构型的数据类型,由多种数据类型,可以是基本数据类型,也可以是自定义的数据类型,组成一个集合。

结构类型定义

编辑
struct 结构类型名
{ 数据类型说明符1 成员名1;
数据类型说明符2 成员名2;
……
数据类型说明符n 成员名n;
};
struct是一个关键字,表示结构类型定义的开始,结构类型说明符可以是int、float、char等等各数据类型。花括号括起来的就是组成结构的各个组成部分。这里定义的结构类型名就相当于int、float等。
定义一个结构类型变量
结构类型名 变量名;
我们以学生为例,先定义结构类型:
struct student
{ long num; //代表学号
char name[20]; //代表姓名
char sex; //代表性别
int age; //代表年龄
float score; //代表成绩
};
接下来定义一个student类型的变量:
student s1;
变量定义时要分配存储空间,给s1分配的存储空间是其结构类型中所有成员所占空间的总和。
定义结构体数组
我们以学生为例,先定义结构类型:
struct student
{ long num; //代表学号
char name[20]; //代表姓名
char sex; //代表性别
int age; //代表年龄
float score; //代表成绩
}; stu[3]
这其中 stu[1]具有num,name,sex,age,score这5个成员,stu[2]和stu[3]也具有;
数组各元素在内存中连续存放。

结构类型引用

编辑
当我们要访问s1的结构成员时,我们要使用圆点操作符“.”。引用形式为:
结构变量名.成员名
例如,输出s1的名字:cout<<s1.name;

结构类型初始化

编辑
对s1初始化有两种方式:
在变量定义同时初始化:
student s1={40741011,”Li Li”,’F’,19,94};
也可以单独的给各个成员赋值
s1.num=40741011;
s1.name=”Li Li”
3. 属于同一结构类型的各个变量之间可以相互赋值,这和数组不同。比如:
student s1,s2;
s1=s2 //把s2的各成员值赋给s1
注意相互赋值的必须是同一结构的变量,不同结构的变量不允许相互赋值,即使它们有相同的成员。