C++中的自定义数据类型(结构体)解析
C++中的自定义数据类型(结构体)解析
自定义数据类型
一、结构体类型
1、 C++允许用户自己定义一组包含若干个类型不同(或相同)的数据项的数据类型,称为结构体。
2、 声明符号:struct
3、 一般形式:struct 结构体类型名{成员表列};
4、 结构体类型名用来作结构体类型的标志。
5、 结构体中的每个成员也称为结构体中的一个域。成员表列又称为域表。
6、 声明结构体类型的位置一般在文件的开头,在所有函数之前。
7、 C++提供了类类型,所以在一般情况下,不必使用带函数的结构体。
二、结构体类型变量的定义方法及其初始化
1、 定义结构体类型变量的方法:
a) 先声明结构体类型再定义变量名
结构体类型名 结构体变量名
Student student1;
C语言中结构体类型名前面加上关键字struct
C++中可以省略
Student1中具有Student中同样的属性
b) 在声明类型的同时定义变量
一般形式:
struct 结构体名
{
成员表列
}变量名表列;
c) 直接定义结构体类型变量
一般形式:
struct //没有结构体类型名
{
成员表列
}变量名表列;
这种方式虽然合法,但很少使用。提倡先定义类型后定义变量的第一种方法.
说明:
1、 不是所有的结构体类型都有相同的结构。
2、 类型与变量是不同的概念,只能对结构体变量中的成员赋值,不能对结构体类型赋值。在编译时,不会对类型分配空间,只为变量分配空间。
3、 结构体中的成员可以单独使用,它的作用与地位相当于普通变量。
4、 成员也可以是一个结构体变量。
5、 #include<iostream>
6、 usingnamespace std;
7、
8、 struct Date //声明一个结构体类型Date
9、 {
10、 int month;
11、 int day;
12、 int year;
13、 };
14、 struct Student //声明一个结构体类型Student
15、 {
16、 int num;
17、 char name[20];
18、 char sex;
19、 int age;
20、 Datebirthday; //Date是结构体类型,birthday是Date类型的成员
21、 char addr[30];
22、 }student1={},student2;//定义student1和student2为结构体类型Student的变量
首先声明了一个Date类型,具有三个成员month,day,year。然后声明Student类型,将成员birthday指定为Date类型,即birthday作为Date结构体类型名的结构体变量,具有month,day,year三个属性。
5、结构体中的成员名可以与程序中的变量名相同,但二者没有关系,互不影响。
|
评论暂时关闭