歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

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、結構體中的成員名可以與程序中的變量名相同,但二者沒有關系,互不影響。

Copyright © Linux教程網 All Rights Reserved