iOS概念入門學習-C語言-結構體

一、結構體的概念

1.C語言構造類型

構造數據類型:構造數據類型是根據已定義的一個或多個數據類型用構造的方法來定義的。 也就是說,一個構造
類型的值可以分解成若干個“成員”或“元素”。每個“成員”都是一個基本數據類型或又是一個構造類型。 

在C語言中,構造類型有以下幾種:
數組類型
結構體類型
共用體(聯合)類型

2.結構體的定義

結構體是一種構造類型,它是由若干“成員”組成的。每一個成員可以是一個基本數據類型或者又是一個構造類型。

3.結構類型的意義

結構體可以把功能相同的數據組織起來,存在一起,用的時候方便,而且在調用函數時,若傳遞參數較多,傳一個結構體相對而言簡單一些,很多系統自帶的函數必須用結構體。

二、結構體的定義和初始化

1.結構體的定義

定義一個結構的一般形式爲:
struct 結構名
{ 
成員表列 
};

//定義一個學生的結構
struct stu
{
int num;
char name[20]; //char *name;
char sex;
float score;
};

成員表列由若干個成員組成,每個成員都是該結構的一個組成部分。對每個成員也必須作類 型說明,其形式爲:
類型說明符 成員名;
成員名的命名應符合標識符的書寫規定。

2.結構體的幾種定義方法

  • 1)先定義結構,在說明結構變量
    這裏寫圖片描述

  • 2)在定義結構類型的同時說明結構變量
    這裏寫圖片描述

  • 3)匿名結構體定義結構變量
    這裏寫圖片描述

3.結構變量中成員的訪問

成員訪問採用“點語法”,一般形式爲:**結構變量名.成員名**,例如:stu1.name,stu2.sex。

4.結構體的初始化

  • 1)先定義結構體變量,然後初始化
    這裏寫圖片描述
  • 2)定義的同時初始化
    這裏寫圖片描述

針對不同的定義和初始化方式,我認爲應該根據需要選取適當地方式,個人感覺把結構體定義成全局的結構體,何時需要何時聲明結構體變量並初始化比較好,值得注意的是匿名結構體必須在定義結構體的同時聲明結構體變量。

三、結構體數組

結構體是用來說明一個事物各個屬性的一種數據結構,那麼當我們需要用到某個事物的集合的時候,理所應當就會利用到數組了,比如一個班的學生,一個工廠裏地工人就分別是學生結構體變量數組和工人結構體變量數組,那麼結構體數組怎樣定義呢?

1.結構數組概念

數組的元素也可以是結構類型的。因此可以構成結構型數組。結構數組的每一個元素都是具有相同結構類型的下標
結構變量。在實際應用中,經常用結構數組來表示具有相同數據結構的一個羣體。如一個班的學生檔案,一個車間
職工的工資表等。

2.結構數組定義

定義格式: 
struct 結構名
{ 
    成員表列 
}數組名[數組長度]; 

- 1)定義結構體的同時,定義數組
這裏寫圖片描述
- 2)先定義結構體,後定義數組
這裏寫圖片描述

3.結構體數組的初始化

代碼示例如下:
這裏寫圖片描述

4.結構體數組的遍歷

代碼示例如下:
這裏寫圖片描述

四、結構體的應用

利用結構體實現簡單地通訊錄功能。
要求:定義一個結構體,包含姓名、電話號碼,由用戶錄入,錄入完成後,輸出所有錄入的聯繫人。
實例代碼如下:
這裏寫圖片描述

總結:結構體個人感覺很像是類的雛形,也能夠描述一類事物的各種屬性,但是類顯然要比結構體強大的多,結構體沒有行爲,只有屬性,也不能像類一樣有繼承、多態等等面向對象特性,但是學好結構體確實能爲後面更深入的理解類打好基礎。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章