黑馬程式員——c語言基礎:結構體和枚舉---typedef的使用

來源:互聯網
上載者:User

標籤:

------Java培訓、Android培訓、iOS培訓、.Net培訓、期待與您交流! -------

一、什麼是結構體

當一個整體由多個資料構成時,我們可以用數組來表示這個整體,但是數組有個特點:內部的每一個元素都必須是相同類型的資料。

在實際應用中,我們通常需要由不同類型的資料來構成一個整體,比如學生這個整體可以由姓名、年齡、身高等資料構成,這些數

據都具有不同的類型,姓名可以是字串類型,年齡可以是整型,身高可以是浮點型。

 為此,C語言專門提供了一種構造類型來解決上述問題,這就是結構體,它允許內部的元素是不同類型的。

 

二、

 

1.定義形式

 結構體內部的元素,也就是組成成分,我們一般稱為"成員"。

結構體的一般定義形式為:

 struct 結構體名{

類型名1 成員名1;

類型名2 成員名2;   

};

比如,我們定義一個學生類

 

三、結構體變數的定義

前面只是定義了名字為Student的結構體類型,並非定義了一個結構體變數,就像int一樣,只是一種類型。

定義結構體的方式一般有三種

1.先定義結構體類型,再定義變數

2.定義結構體類型的同時定義變數

3.直接定義結構體類型變數,省略類型名

 

四、結構體的注意點

1.結構體不可以包含自己

2.結構體內可以包含別的結構體

 

3.只有當定義屬於結構體類型的變數時,系統才會分配儲存空間給該變數

結構體的初始化

將各成員的初值,按順序地放在一對大括弧{}中,並用逗號分隔,一一對應賦值。

比如初始化Student結構體變數stu

結構體只能在定義變數的時候賦初值

 

枚舉

枚舉是C語言中的一種基礎資料型別 (Elementary Data Type),並不是構造類型,它可以用於聲明一組常數。

當一個變數有幾個固定的可能取值時,可以將這個變數定義為枚舉類型。比如,你可以用一個枚舉類型的變數來表示季節,因為季節只有4種可能的取值:春天、夏天、秋天、冬天。1.枚舉的定義

1)枚舉類型的定義

一般形式為:enum 枚舉名 {枚舉元素1,枚舉元素2,……};

 

2)枚舉變數的定義

跟結構體一樣,有3種方式定義枚舉變數

1>先定義枚舉類型,再定義枚舉變數

 

2>定義枚舉類型同時,定義枚舉變數

3>省略枚舉類型名,直接定義枚舉變數

 

2.枚舉的使用

1)C語言編譯器會將枚舉元素(spring、summer等)作為整型常量處理,稱為枚舉常量。

2)枚舉元素的值取決於定義時各枚舉元素排列的先後順序。預設情況下,第一個枚舉元素的值為0,第二個為1,依次順序加1。

 

3)也可以在定義枚舉類型時改變枚舉類型的值

 

3.枚舉變數的基本操作賦值

 

可以給枚舉變數賦枚舉常量或者整型值

 

遍曆枚舉元素

 

 

typedef1.typedef作用簡介

1)我們可以使用typedef關鍵字為各種資料類型定義一個新名字

 

2)我們還可以在別名的基礎上再起別名

 

typedef與指標

 

除開可以給基礎資料型別 (Elementary Data Type)起別名,typedef也可以給指標起別名

 

typedef與結構體

 

給結構體起別名可以使代碼更加簡潔明

 

typedef與枚舉類型

 

 

typedef與指向函數的指標1)先看一下指向函數的指標如何定義

 

 

總結:

1.需要先定義結構體類型,再定義結構體變數。定義結構體類型時,系統是不分配記憶體空間的。系統只分配記憶體空間給實際的結構體變數。

2.結構體變數所佔記憶體大小:補齊演算法——最大元素的倍數。
3.枚舉元素值從0開始,後續元素依次+1。

4.typedef的使用

黑馬程式員——c語言基礎:結構體和枚舉---typedef的使用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.