用合適的 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

更新於: 2021-03-09

1K+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告