用合適的 C 語言示例說明結構體和聯合體的區別
以下是 C 語言中結構體和聯合體的區別:
| 序號 | 結構體 | 聯合體 |
|---|---|---|
| 1 | 定義 結構體是將不同資料項組合在一起,並使用一個名稱進行分組的異構資料集合。 | 定義 聯合體是一個記憶體位置,由多個不同資料型別的變數共享。 |
| 2 | 語法:struct tagname{
datatype member1;
datatype member2;
----
----
----
}; | 語法:union tagname{
datatype member1;
datatype member2;
----
----
----
}; |
| 3 | 例如:struct sample{
int a;
float b;
char c;
}; | 例如:union sample{
int a;
float b;
char c;
}; |
| 4 | **關鍵字** - struct | **關鍵字** - union |
| 5 | 記憶體分配 | 記憶體分配 |
| 6 | ![]() | ![]() |
| 7 | 分配的記憶體是結構體中所有資料型別大小的總和(此處為 7 位元組) | 分配的記憶體是聯合體中所有資料型別中最大的大小(此處為 4 位元組) |
| 8 | 為結構體的所有成員分別分配記憶體 | 在任何特定時刻,只有一個成員駐留在記憶體中 |
示例
以下是結構體的 C 程式:
#include<stdio.h>
struct size{
double a;
int b;
char c;
float d;
};
int main(){
printf("%ld",sizeof( stuct size));
}輸出
執行上述程式時,會產生以下結果:
24
示例
以下是聯合體的 C 程式:
#include<stdio.h>
union size{
double a;
int b;
char c;
float d;
}
Int main(){
Printf("ld",sizeof(union size));
}輸出
執行上述程式時,會產生以下結果:
8
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP.jpg)
