C語言的結構體,列舉型別,在程式中的作用是什麼,詳細點

時間 2022-08-02 09:10:13

1樓:

結構和列舉型別從程式實現的角度來說,是用更接近自然語言的方式來表達資料。比如說實現2維空間的點,你可以使用2維陣列,但是可讀性會很差。此時,你可以換用結構,結構中含有屬性項x、y,這樣更接近我們實際使用的方式。

列舉型別本質上就是一個標籤集合,之所以有列舉變數,也是為了可讀性。比如一個程序的狀態有五種:建立、準備、執行、停止、銷燬,如果使用數字來表示狀態,我們直接用0~4來表示就行,但這樣別的人會無法理解,通過列舉型別我們宣告eunm status,就可以使程式的可讀性提高

2樓:匿名使用者

結構體:

因為在資料型別描述的時候,系統只給出了單一量的型別名,比如int 只能描述整數,float描述單精度實數等等。如果你要描述的多個不同量的組合,比如描述**形式的資料(姓名:性別:

年齡:工作時間。)那麼這種組合的資料型別都是比較隨機的,沒有形成大眾所有的格式,那麼這就要求你自己給自己設定了。

(每個人隨機定義的這些組合量不同),我們把這些沒有被系統直接給定,而是留給使用者根據實際組合設定的,又是滿足一定需要的資料型別根據特點叫做結構體型別。他就像你先搭建一個公用平臺一樣,後面用的都是這個模樣。

列舉型別:

也是這樣的一種形式,區別是你不需要設定結構,而是直接給出結構中所用的具體資料描述。

比如,沒有描述顏色的具體資料形式,現在你想用,那好,你自己給他規定顏色表示就行了,你規定怎樣表示,後面就用這些量表示。

3樓:匿名使用者

結構體一般是把同一個事物的各種屬性封裝在一起(就是說各個變數的型別可以是不同的),而列舉一般是把具有共同屬性的事物封裝在一起(屬性相同,變數型別就是要一樣的)。他們都只能封裝變數而不能封裝函式。可以看看c++中對於類的定義,你會知道更多。

4樓:匿名使用者

樓主還是買本c語言的書看下吧

c語言的結構體中怎麼包含列舉型別?

結構體、共用體和列舉型別的基本特點及區別是什麼?

5樓:倒黴熊

結構體和陣列一樣都是構造型資料型別,和陣列不同的是,結構體可以處理不同型別的資料。如下定義一個學生資訊的結構體:

struct student這個結構體有三種型別的資料,可以看出結構體裡還可以有結構體型別、共用體的型別的資料。

共用體是一種多變數共享儲存空間的構造型別,它允許幾種不同的變數共用同一儲存空間。共用體和結構體的區別:1.

結構體每一位成員都用來表示一種具體事務的屬性,共用體成員可以表示多種屬性(同一儲存空間可以儲存不同型別的資料)。

2.結構體總空間大小,等於各成員總長度,共用體空間等於最大成員佔據的空間。

3.共用體不能賦初值。

只要理解了共用體了結構體他們的區別應該能分清楚。

列舉型別是指變數的值可以全部列出,定義一個列舉變數後,變數的值確定在定義之中。它和結構體、共用體的區別在於,列舉元素是常量,只能在定義階段賦值。列舉是比較特別的型別,有很多的細節,你可以翻閱書本繼續理解。

c#中的結構和列舉是什麼型別?和類有什麼區別?各有什麼優點和作用?

6樓:哈強笑

c#中的結構和列舉型別和c語言c++中的結構體和列舉型別性質一樣,只不過多了修飾符限制。

7樓:匿名使用者

c#中的結構和列舉 是 值型別

結構是值型別,當顯示的定義帶參的建構函式時,預設的無參建構函式依然存在,結構不能繼承,但可實現介面。

而類是屬於引用資料型別,當顯示的定義帶參的建構函式時,預設的無參建構函式就不存在了,類可以繼承,也可以實現介面。

而列舉也是值型別,它是一組已命名的數值常量,它有助於定義具有一組特定值的資料型別,主要總結為 :確定並有限,不會出現非安全值。

c語言中的列舉型別有什麼用麼?

8樓:gta小雞

列舉型別復就相當於助制記符,幫助程式設計師記憶的。

比如現在要畫一張地圖,用到紅黃藍綠四種顏色。為了儲存方便,我們規定0=紅,1=黃,2=藍,3=綠。但是當程式設計到某一階段時,程式設計師可能忘記了哪個數字具體對應哪種顏色,或者忘記了到底有多少個數字,這時他就要去查表,這樣會耽誤時間。

此時就可以定義一個列舉型別enum color,這樣系統就會自動將0、1、2、3和這個列舉型別中的每個元素一一對應起來,程式設計師只需要記住"red"、"green"等單詞即可,而且不會出現「4」之類的定義之外的數字。

但列舉型別使用起來也有很多限制,它是一種單獨的資料型別,因此不能簡單像陣列那樣操作,而且經常要用到型別轉換,操作起來反而不方便。實際程式設計中很少使用。

9樓:弩弟弟

就是個整形而已,但是取值範圍是自己確定的

c語言的結構體的具體作用是?c的主要用途?

10樓:匿名使用者

在實際問題中,一組資料往往具有不同的資料型別。例如,在學生登記表中,姓名應為字元型;學號可為整型或字元型;年齡應為整型;性別應為字元型;成績可為整型或實型。顯然不能用一個陣列來存放這一組資料。

因為陣列中各元素的型別和長度都必須一致,以便於編譯系統處理。為了解決這個問題,c語言中給出了另一種構造資料型別——「結構(structure)」或叫「結構體」。 它相當於其它高階語言中的記錄。

「結構」是一種構造型別,它是由若干「成員」組成的。每一個成員可以是一個基本資料型別或者又是一個構造型別。結構既是一種「構造」而成的資料型別,那麼在說明和使用之前必須先定義它,也就是構造它。

如同在說明和呼叫函式之前要先定義函式一樣。

讓程式設計序的人自定義一個資料型別。

11樓:匿名使用者

c語言的結構體是可以把定義的變數多元化,分類化!

c是一種高階語言!

用他編寫程式語法結構要求不是很嚴,同時程式執行率高!

c語言結構體的定義,C語言結構體的定義

滑映寒愈霽 第二個struct student是定義了一個student結構體,這個明白吧。第一個是用typedef把struct student這個結構體型別名字重新定義為student,也就是說struct student和student表示同一個事物,都是一個型別的識別符號,比如 typede...

c語言中在結構體中name函式名什麼意思

這裡的name變數不是普通資料型別,是一個函式指標。1 函式指標是指向函式的指標變數。因而 函式指標 本身首先應是指標變數,只不過該指標變數指向函式。這正如用指標變數可指向整型變數 字元型 陣列一樣,這裡是指向函式。c在編譯時,每一個函式都有一個入口地址,該入口地址就是函式指標所指向的地址。有了指向...

C語言與C 結構體的區別,C語言和C 語言的區別是什麼?

c語言的結構就是值型別,跟int,char沒有什麼區別 c 的結構跟類已經非常接近了,就是如果不具體說明,預設為共有 比如說這個結構體吧.struct mystruct str 在c 裡可以這樣用 mystruct s1 mystruct 就是一個型別,在c裡只能這樣用其 struct mystru...