歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> C++中的自定義數據類型(結構體)解析

C++中的自定義數據類型(結構體)解析

日期:2017/3/1 10:23:27   编辑:Linux編程

自定義數據類型

一、結構體類型

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