91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

c語言中union的含義是什么

小億
140
2023-12-21 00:51:56
欄目: 編程語言

在C語言中,union(聯合)是一種特殊的數據類型,允許在相同的內存位置存儲不同的數據類型。與結構體類似,聯合也可以由多個不同類型的成員組成,但是在任何給定的時刻只能使用其中的一個成員。這是因為聯合的所有成員共享相同的內存空間,它們的值互相覆蓋。

聯合的大小取決于最大成員的大小,并且所有成員共享相同的地址,因此只能存儲其中一個成員的值。當給聯合的一個成員賦值后,其他成員的值將被覆蓋。

聯合可以用于節省內存空間,特別是在某些情況下只需要存儲一個類型的數據,但是需要確保其他類型的數據能夠占用相同的內存位置。

下面是一個使用聯合的示例:

#include <stdio.h>

union Data {
   int i;
   float f;
   char str[20];
};

int main() {
   union Data data;
   
   printf("Memory size occupied by data : %d\n", sizeof(data));

   data.i = 10;
   data.f = 220.5;
   strcpy(data.str, "C Programming");

   printf("data.i : %d\n", data.i);
   printf("data.f : %f\n", data.f);
   printf("data.str : %s\n", data.str);

   return 0;
}

輸出結果為:

Memory size occupied by data : 20
data.i : 1917853763
data.f : 4122360580327794860452759994368.000000
data.str : C Programming

可以看到,聯合的大小為20字節,因為字符數組是最大的成員。在給聯合的不同成員賦值后,其他成員的值被覆蓋。

0
东阳市| 苏州市| 阆中市| 息烽县| 礼泉县| 弥渡县| 赤壁市| 宿迁市| 宁夏| 清徐县| 昭苏县| 应城市| 通化市| 会宁县| 清新县| 东乡族自治县| 息烽县| 阿瓦提县| 蒙城县| 江西省| 海南省| 自治县| 健康| 延庆县| 秦皇岛市| 永康市| 河间市| 丹寨县| 元谋县| 舒兰市| 手游| 高邮市| 文成县| 西畴县| 清流县| 来凤县| 塔城市| 同德县| 杭州市| 无极县| 潼关县|