結構(structure)和c中的並集(union in c)的區別

陣列是C語言支援的資料結構。陣列可用於儲存相同型別的資料元素。如果有一個語句是int marks[10];那麼marks是一個數組,可以儲存10個標記,並且所有這些標記都是整數。有時需要將不同型別的資料元素儲存在同一個記憶體位置。例如,員工可以有員工ID、姓名、部門、年齡等,它們屬於不同的資料型別。因此,有必要有一種方法將各種資料元素作為一個單元來儲存。C語言中的結構和聯合用於將不同型別的資料元素存...

關鍵區別——c語言中的結構與聯合

數組是C語言支持的數據結構。數組可用於存儲相同類型的數據元素。如果有一個語句是int marks[10];那麼marks是一個數組,可以存儲10個標記,並且所有這些標記都是整數。有時需要將不同類型的數據元素存儲在同一個內存位置。例如,員工可以有員工ID、姓名、部門、年齡等,它們屬於不同的數據類型。因此,有必要有一種方法將各種數據元素作為一個單元來存儲。C語言中的結構和聯合用於將不同類型的數據元素存儲在同一個內存位置。結構和聯合是相似的,但主要是由於內存分配的不同而不同。存儲結構變量所需的內存是所有成員內存大小的總和。存儲聯合變量所需的內存是聯合中最大元素所需的內存。這是C語言中結構與並集的關鍵區別,本文討論了C語言中結構與並集的區別。

目錄

1. 概述和主要區別
2. C語言中的結構是什麼
3. 什麼是C中的聯合
4. C語言中結構與並集的相似性
5. 並排比較-表格形式的C中的結構與並集
6. 摘要

什麼是c中的結構(structure in c)?

結構是C語言中用戶定義的數據類型,它有助於組合不同類型的數據項。結構可以表示記錄。學生可以有student_id、student_name等,而不是分別存儲每個變量,所有這些不同的數據項可以使用一個結構壓縮成一個單元。它是使用關鍵字“struct”定義的。在一個結構中,它的所有成員都可以在任何時間。那個下面創建一個派生數據類型struct Student。

結構學生{

學生證;

學生姓名[20];

};

對於上面的結構,變量可以聲明如下。

構建學生1,學生2,學生3;

有兩種方法可以訪問結構的成員。即使用成員運算符(.)和結構指針運算符(->)。可以使用結構“變量”名稱訪問成員。成員名稱。如果程序員想訪問學生2的名字,那麼他可以把語句寫成printf(student2.student_namename);

參考下面的程序和一個結構。

結構(structure)和c中的並集(union in c)的區別

圖01:帶結構的C程序

根據上述程序,學生是一個結構。它包含學生id和學生姓名。主程序中聲明瞭結構類型的兩個變量。他們被稱為student1和student2。使用成員操作符作為student1,將student1的id指定為值1。student\u id=1。“Ann”是一個字符串。因此,它使用字符串複製函數strcpy複製到學生名稱成員。id和名稱以類似的方式分配給student2。最後,使用成員操作符打印這些值。

存儲結構變量所需的內存量是所有成員的內存大小之和。學生編號包含4個字節,學生姓名包含20個字節(每個字符一個字節)。24字節的總和是結構所需的總字節數。

什麼是c中的並集(union in c)?

聯合是C語言中用戶定義的數據類型。它有助於在同一內存位置存儲不同的數據類型。一本書可以有諸如Book_name、price等屬性,而不是為每個屬性創建變量,而是使用union將所有不同的數據類型壓縮到一個單元中。它是使用關鍵字“union”定義的。

銀聯簿{

字符名稱[20];

雙倍價格;

};

對於上面的聯合,變量可以聲明如下。

聯合書第1冊,第2冊;

有兩種方法可以訪問工會成員。即使用成員運算符(.)和結構指針運算符(->)。可以使用union_variable_name訪問成員。成員名稱。如果程序員想訪問book1的名稱,那麼他可以將語句寫成printf(book1.name);

用一個接頭引用下面的程序。

結構(structure)和c中的並集(union in c)的區別

圖02:使用union的C程序

根據上面的程序,這本書是一個聯合體。book1是union類型的變量。名稱和價格是賦值的。在union中,一次只能訪問它的一個成員,而所有其他成員都將具有垃圾值。id的值打印不正確,但價格值打印正確。

結構(structure)和c中的並集(union in c)的區別

圖03:帶union的修改C程序

根據上面的程序,書是一個聯合體。book1和book2是聯合類型變量。首先,指定book1 name的值並將其打印出來。然後指定book2 name的值並將其打印出來。所有成員都能正確打印,因為一次只能使用一個成員。存儲聯合所需的內存是聯合的最大元素所需的內存。程序名中的變量是20字節。它比價錢大。因此,聯合的內存分配是20字節。

結構(structure)和c中的並集(union in c)的共同點

  • C中的Structure和Union都是用戶定義的數據類型。
  • C語言中的結構和聯合都可以用來在同一個內存位置存儲不同的數據類型。

結構(structure)和c中的並集(union in c)的區別

C語言中的結構與聯合
結構是C語言中用戶定義的數據類型,它允許將不同類型的數據組合在一起。 Union是C語言中用戶定義的數據類型,它允許將不同類型的數據組合在一起。
無障礙
在結構中,可以隨時訪問其所有成員。 在聯合中,一次只能訪問它的一個成員,而所有其他成員都將包含垃圾值。
內存分配
存儲結構變量所需的內存是所有成員內存大小的總和。 存儲聯合變量所需的內存是聯合中最大元素所需的內存。
關鍵字
用於定義structure的關鍵字。 用於定義聯合的關鍵字是“union”。

總結 - 結構(structure) vs. c中的並集(union in c)

數組用於存儲相同類型的數據元素。有時需要將不同類型的數據元素存儲在同一個內存位置。C語言提供了結構和聯合來完成這一任務。兩者都是用戶定義的數據類型。存儲結構變量所需的內存是所有成員內存大小的總和。存儲聯合變量所需的內存是聯合中最大元素所需的內存。這就是C語言中結構和並集的區別。

引用
  • 發表於 2020-10-19 06:29
  • 閱讀 ( 61 )
  • 分類:科技

你可能感興趣的文章

dcc公司(dcc)和edc公司(edc)的區別

...高度可溶。然而,它不溶於水。 When c***idering the chemical structure of this compound, it has a linear C-N=C=N-C structure at the centre of the molecule. Therefore, this structure is related to the chemical structure of allene. There are several methods of producing DCC. One method inc...

  • 發佈於 2020-09-30 07:50
  • 閲讀 ( 60 )

正方形平面(square planar)和四面體配合物(tetrahedral complexes)的區別

... in corners of the same square plane. The bond angles of the bonds in this structure are 90°. Transition metals having the electron configuration ending d8 form coordination complexes having this molecular geometry. For example, Rh(I), Ir(I), Pd(II), etc. The coordination number for a square planar...

  • 發佈於 2020-10-15 00:12
  • 閲讀 ( 217 )

閃鋅礦(zinc blende)和金剛石結構(diamond structure)的區別

...單元胞中有四個不對稱單元。 什麼是金剛石結構(diamond structure)? 金剛石是碳的同素異形體。它是一種固體形式的碳,具有三維形狀。此外,每個碳原子透過共價化學鍵與另外四個碳原子相連。這種晶體結構被稱為“金剛石立方...

  • 發佈於 2020-10-16 02:41
  • 閲讀 ( 221 )

結構的(structural)和碳水化合物中的光學異構體(optical isomers in carbohydrates)的區別

...和光學異構體 5. 摘要 什麼是碳水化合物中的結構異構體(structural isomers in carbohydrates)? 碳水化合物的結構異構體是同一化學式的不同結構形式。化合物的化學式給出了化合物中存在的化學元素以及每個化學元素的原子數。但是...

  • 發佈於 2020-10-16 21:09
  • 閲讀 ( 73 )

聯盟(union)和sqlserver中的union all(union all in sql server)的區別

...資料冗餘以實現資料一致性。sqlserver就是這樣一種DBMS。結構化查詢語言(SQL)是資料庫管理系統中管理資料的語言。Union和Union all是SQL中的兩個命令,它們有助於在表資料中執行set操作。 目錄 1. 概述和主要區別 2. SQL Server中的...

  • 發佈於 2020-10-18 10:13
  • 閲讀 ( 55 )

班(class)和結構(c)#(structure in c#)的區別

...。因此,一個類可以繼承另一個類。 什麼是c中的結構#(structure in c#)? 該結構是C#中的值型別資料型別。它是一個包含多種資料型別的變數。一個結構可以代表一個特定的記錄。結構包含屬性。學生有身份證、姓名和年齡等屬性...

  • 發佈於 2020-10-19 17:15
  • 閲讀 ( 62 )

樹(tree)和資料結構中的圖形(graph in data structure)的區別

...構之間的關鍵區別。 什麼是資料結構中的樹(a tree in data structure)? 所有的資料項都是以一個非序列的形式排列的。樹定義了一組有限的資料項。每個資料項稱為節點。有一個特殊的父節點,也稱為根節點。所有其他節點都是子...

  • 發佈於 2020-10-21 10:25
  • 閲讀 ( 56 )

宣言(declaration)和c中的定義(definition in c)的區別

...義包含執行特定任務的函式的實際語句。 C是一種通用的結構化程式語言。它使用控制結構,如if/else,重複,如for迴圈,while迴圈和函式。函式是一組有助於反覆執行某項任務的語句。此外,還可以從主函式呼叫函式。在執行函...

  • 發佈於 2020-10-22 15:12
  • 閲讀 ( 44 )

代表(delegates)和c中的事件#(events in c#)的區別

...#(events in c#)的區別 C是微軟開發的一種程式語言。它支援結構化程式設計和麵向物件程式設計。委託和事件用於C中的事件驅動程式設計。委託是指向方法的型別安全指標。在具有圖形使用者介面(GUI)的應用程式中,有按鈕等。...

  • 發佈於 2020-10-24 02:21
  • 閲讀 ( 69 )

結構化的(structured)和非結構化程式設計(unstructured programming)的區別

結構化的(structured)和非結構化程式設計(unstructured programming)的區別 計算機程式是計算機執行用程式語言編寫的任務的一組指令。程式設計範例可以根據語言特性對程式語言進行分類。結構化程式設計和非結構化程式設計是兩...

  • 發佈於 2020-10-24 05:09
  • 閲讀 ( 92 )
我今天改名
我今天改名

0 篇文章

作家榜

  1. admin 0 文章
  2. 孫小欽 0 文章
  3. JVhby0 0 文章
  4. fvpvzrr 0 文章
  5. 0sus8kksc 0 文章
  6. zsfn1903 0 文章
  7. w91395898 0 文章
  8. SuperQueen123 0 文章

相關推薦