c語言,union有什麼用,C語言union的用法

2022-03-08 04:25:18 字數 2572 閱讀 5890

1樓:曉風和曉雨

union是一種資料型別,在一段物理空間內可以儲存你定義的不同的幾個資料型別的一種。目的是節省空間和建立多個變數的花銷。

比如unionu;

這個變數u為8個位元組(int:4位元組 double:8位元組)這時候你可以用u.i儲存int型別資料

或者用u.j儲存double型別資料

切換使用時 後者資料會覆蓋前者(因為共享一段記憶體)

c語言union的用法

2樓:肥仙女

1、我們利用c語言定義一個簡單的union共用體結構。

2、在這個結構中包含若干個屬性,其中有int、char和double型。

3、此時我們還能利用typedef關鍵字,去重名union共用體。

4、然後我們就能這裡對union公用體進行定義使用。

5、定義語句無論是在main函式之外還是之內,我們都能這樣對他定義。

6、其實他還有一種比較特殊的用法,我們可以直接利用typedef重名後的d來直接定義union共用體的用法。

7、所以說union的用法非常簡單,但是要注意與struct結構體之間有一個區分。

3樓:匿名使用者

這個和資料在記憶體中的儲存方式有關。

你看一下下面的資料在記憶體中的方式就明白了:

int i = 0x009a96ec。

然後你看&i這塊記憶體,它在記憶體中的順序是0xec;0x96;0x9a;0x00。

也就是說,這些資料在記憶體中是反過來儲存的。

4樓:匿名使用者

順序是反的

因為x86是高位元組存在高地址,那tempa地址最高,所以它存的就是long的高位元組,所以是反的

c語言中聯合體(union)的使用

5樓:樂酷科技

uniuon datax;

定義了一個結合體名叫x 裡面包含了int型變數i,char型別c,float型別變數f

int y;這是宣告的一個變數

6樓:8暗風吹雪

聯合體又被稱為共用體,我個人感覺,共用體名字更合理。

和結構體同屬於c語言資料型別中的結構型別。

例如uniuon datax;定義共用體型別名稱為data型別,有三個屬性,分別為

int i ; char c ;float f;這三個屬性共同佔用記憶體空間,所以空間佔用選屬性中佔用最多的那個,也就是float f。佔用四個位元組。由於共同佔用,所以在同一時間只能保留一個屬性內容

如果為struct datax;則表明定義結構體型別名稱為data型別,也是三個屬性,不過在記憶體中佔用的是空間大小是三個屬性之和。若int型別在編譯器中分配4位元組的話,總共分配位元組數位4+1+4總共9位元組。

由於單獨佔用,所以在同一時間可以保留所有屬性內容

c語言union 用法(不懂求解)

7樓:匿名使用者

union 的意思是其中的a b共用同一塊記憶體,第一次輸入的5被第二次輸入的asf所覆蓋,asf\0在記憶體中儲存的資訊,按整數(四位元組)輸出就變成了你看到的數字內容6714209

c語言中union如何使用,請給出具體的案例

8樓:談世城

c語言中,union的使用與struct 的用法非常類似,主要區別在於union 維護足夠的空間來置放多個資料成員中的「一種」,而不是為每一個資料成員配置空間,在union 中所有的資料成員共用一個空間,同一時間只能儲存其中一個資料成員,所有的資料成員具有相同的起始地址。

具體的案例:

union statemachine

;一個union 只配置一個足夠大的空間以來容納最大長度的資料成員,以上例而言,最大長度是double 型態,所以statemachine 的空間大小就是double 資料型別的大小。

union,即「聯合」,是一種特殊的類,也是一種構造型別的資料結構。在一個「聯合」內可以定義多種不同的資料型別, 一個被說明為該「聯合」型別的變數中,允許裝入該「聯合」所定義的任何一種資料,這些資料共享同一段記憶體,以達到節省空間的目的(還有一個節省空間的型別:位域)。

這是一個非常特殊的地方,也是聯合的特徵。另外,同struct一樣,聯合預設訪問許可權也是公有的,並且,也具有成員函式。

9樓:匿名使用者

「聯合」與「結構」有一些相似之處。但兩者有本質上的不同。在結構中各成員有各自的記憶體空間, 一個結構變數的總長度是各成員長度之和。

而在「聯合」中,各成員共享一段記憶體空間, 一個聯合變數的長度等於各成員中最長的長度。應該說明的是, 這裡所謂的共享不是指把多個成員同時裝入一個聯合變數內, 而是指該聯合變數可被賦予任一成員值,但每次只能賦一種值, 賦入新值則衝去舊值。

如:void main()

depa;

}body[2];

int n,i;

for(i=0;i<2;i++)

printf("name\tage job class/office\n");

for(i=0;i<2;i++) }

c在c語言程式設計裡是做什麼用的, c 在C語言程式設計裡是做什麼用的??

通過你的描述我大概知道你要表述的意思了,fscanf是進行檔案讀取操作,而檔案中資料的存放格式是用中間 來描述規範的,當然,第一項大家都知道,是開啟檔案的指標 file,這裡是output fopen 至於第三項,是要儲存的位置,你的情況是 c字元,而 c就是檔案中的間隔符。有沒完整點的 啊。實在沒...

什麼是C語言和C語言C語言和C語言的區別是什麼?

1 c語言。c語言誕生得非常早,當時人們普遍還習慣用組合語言編寫軟體,並且沒有什麼統一,通用的作業系統,基本上軟體都是從0開始寫的。c語言的方針便是比彙編方便易用,一起不要損失彙編的表達能力。所以c語言可以看成是 高階的彙編 語言。c語言的源 基本上可以非常容易地對應到彙編 並且可以不需要什麼執行時...

c語言和c語言的區別是什麼C語言和C語言的區別是什麼?

c語言與c 的區別有很多 1,全新的程式程式思維,c語言是程序導向的,而c 是物件導向的。2,c語言有標準的函式庫,它們鬆散的,只是把功能相同的函式放在一個標頭檔案中 而c 對於大多數的函式都是有整合的很緊密,特別是c語言中沒有的c 中的api是對window系統的大多數api有機的組合,是一個集體...