關鍵區別——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);
參考下面的程序和一個結構。
根據上述程序,學生是一個結構。它包含學生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);
用一個接頭引用下面的程序。
根據上面的程序,這本書是一個聯合體。book1是union類型的變量。名稱和價格是賦值的。在union中,一次只能訪問它的一個成員,而所有其他成員都將具有垃圾值。id的值打印不正確,但價格值打印正確。
根據上面的程序,書是一個聯合體。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語言中結構和並集的區別。