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是结构体类型,birthdayDate类型的成员

21、   char addr[30];

22、 }student1={},student2;//定义student1student2为结构体类型Student的变量

首先声明了一个Date类型,具有三个成员month,day,year。然后声明Student类型,将成员birthday指定为Date类型,即birthday作为Date结构体类型名的结构体变量,具有month,day,year三个属性。

5、结构体中的成员名可以与程序中的变量名相同,但二者没有关系,互不影响。

  • 1
  • 2
  • 下一页

相关内容