C/C++關鍵字——union

1.介紹

????????union是一種特殊的數據類型,它允許你在同一塊內存區域中存儲不同的數據類型。它的主要目的是節省內存,尤其是在處理多種可能的數據類型,但一次只使用其中一種的場景。

2.特點

????????與?struct(結構體)不同,結構體的每個成員都擁有自己獨立的內存空間,而聯合的所有成員都共享同一段內存。這意味著,你給一個成員賦值,會覆蓋其他成員的值(因為它們都使用相同的內存起始地址)。

????????一個聯合的大小至少等于其最大成員的大小,以確保能容納下任何一個成員。

3.使用方式

union UnionName {member_type1 member1;member_type2 member2;member_type3 member3;// ...
};

4.例子????????

#include <stdio.h>
#include <string.h>union Data {int i;float f;char str[20];
};int main() {union Data data;// 使用整數成員data.i = 10;printf("data.i : %d\n", data.i); // 輸出: data.i : 10// 使用浮點數成員 - 這會覆蓋 i 的內存data.f = 220.5;printf("data.f : %.2f\n", data.f); // 輸出: data.f : 220.50// 此時再讀取 data.i 將是無意義的值(是浮點數 220.5 的二進制解釋)printf("data.i (after setting f) : %d (nonsense)\n", data.i);// 使用字符數組成員 - 這會覆蓋之前所有的內存strcpy(data.str, "C Programming");printf("data.str : %s\n", data.str); // 輸出: data.str : C Programming// 此時讀取 i 或 f 都將是無意義的值printf("data.i (after setting str) : %d (nonsense)\n", data.i);printf("data.f (after setting str) : %.2f (nonsense)\n", data.f);return 0;
}

? ? ? ? 輸出結果:

data.i : 10
data.f : 220.50
data.i (after setting f) : 1100006400 (nonsense)
data.str : C Programming
data.i (after setting str) : 1819043147 (nonsense)
data.f (after setting str) : 9129985281638201200000000000000.00 (nonsense)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/921270.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/921270.shtml
英文地址,請注明出處:http://en.pswp.cn/news/921270.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

2024 arXiv Cost-Efficient Prompt Engineering for Unsupervised Entity Resolution

論文基本信息 題目&#xff1a; Cost-Efficient Prompt Engineering for Unsupervised Entity Resolution 作者&#xff1a; Navapat Nananukul, Khanin Sisaengsuwanchai, Mayank Kejriwal 機構&#xff1a; University of Southern California, Information Sciences Institu…

【XR技術概念科普】什么是注視點渲染(Foveated Rendering)?為什么Vision Pro離不開它?

一、前言2023 年&#xff0c;蘋果推出了 Vision Pro 頭顯&#xff0c;把“空間計算”概念推向大眾。與以往的 XR 設備不同&#xff0c;Vision Pro 強調高分辨率、真實感與沉浸感。然而&#xff0c;這種體驗背后隱藏著一個巨大的技術挑戰&#xff1a;如何在有限的計算與能耗條件…

Qt 系統相關 - 1

雖然 Qt 是跨平臺的 C 開發框架&#xff0c;Qt 有很多能力其實是操作系統提供的&#xff0c;只不過 Qt 封裝了系統的 API程序時運行在操作系統上的&#xff0c;需要系統給我們提供支撐&#xff01;事件文件操作多線程編程網絡編程多媒體&#xff08;音頻&#xff0c;視頻&#…

“12306”有多牛逼?從架構師的角度詳細的告訴你

12306鐵路票務系統架構深度解析 &#x1f4da; 目錄 系統概述業務特點與技術挑戰整體架構設計核心技術架構高并發處理策略數據存儲與管理緩存體系設計分布式系統架構安全防護體系性能優化策略監控與運維技術演進歷程總結與展望 每到春節、國慶這種全民遷徙的時刻&#xff0c;…

數據采集機器人哪家好?2025 年實測推薦:千里聆 RPA 憑什么成企業首選?

在數字化轉型加速的今天&#xff0c;數據采集已成為企業運營的核心環節&#xff0c;數據采集機器人正在重構企業的效率邊界。2025 年中國 RPA 市場排名顯示&#xff0c;泛微旗下的千里聆 RPA 已躋身行業前五&#xff0c;成為中大型國央企的首選品牌。本文將通過三維評估體系&am…

基礎crud項目(前端部分+總結)

本人根據自己對前端微不足道的理解和 AI 老師的指導下&#xff0c;艱難地完成了基礎crud代碼的全棧開發&#xff0c;算是自己的第一個 Java 項目&#xff0c;對此做個簡單總結。 后端部分 在前后端分離開發中&#xff0c;前端負責頁面交互與數據展示&#xff0c;后端提供接口支…

MATLAB矩陣及其運算(二)函數

函數分為MATLAB內置函數及用戶自定義函數&#xff0c;用戶可以直接調用內置函數進行數據處理。內置函數的使用函數由三部分組成&#xff1a;名稱、輸入和輸出。內置函數示例&#xff1a;單輸入單輸出函數&#xff1a;sqrt(x)&#xff1b;單輸入多輸出函數&#xff1a;size(x)&a…

自動化運維-ansible中對于大項目的管理

自動化運維-ansible中對于大項目的管理 一、引用主機清單 在Playbook中引用主機時&#xff0c;hosts 字段指定的目標必須與Ansible主機清單中定義的標識符完全匹配。如果清單中配置的是主機名&#xff0c;則在Playbook中使用IP地址或其他別名將無法匹配&#xff0c;導致任務被跳…

59_基于深度學習的麥穗計數統計系統(yolo11、yolov8、yolov5+UI界面+Python項目源碼+模型+標注好的數據集)

目錄 項目介紹&#x1f3af; 功能展示&#x1f31f; 一、環境安裝&#x1f386; 環境配置說明&#x1f4d8; 安裝指南說明&#x1f3a5; 環境安裝教學視頻 &#x1f31f; 二、數據集介紹&#x1f31f; 三、系統環境&#xff08;框架/依賴庫&#xff09;說明&#x1f9f1; 系統環…

面試問題詳解十六:Qt 內存管理機制

在 Qt 開發過程中&#xff0c;很多初學者&#xff08;包括不少有經驗的 C 程序員&#xff09;經常會產生這樣的疑問&#xff1a;“我在 Qt 中 new 出來的控件好像都沒有 delete&#xff0c;那內存不會泄漏嗎&#xff1f;”比如下面這段代碼&#xff1a; void Widget::createLef…

Pycharm 試用

Ubuntu 重置Pycharm試用期限&#xff08;30 天&#xff09; 先關閉Pycharm刪除系統緩存 rm -rf ~/.config/JetBrains/ && rm -rf ~/.local/share/JetBrains/ && rm -rf ~/.cache/JetBrains/刪除已經安裝的 Pycharm 軟件運行目錄去官網下載新的 就行了

C++ Qt 開發核心知識

Qt 框架概述Qt 是一個跨平臺的 C 應用程序開發框架&#xff0c;廣泛用于開發圖形用戶界面程序。其核心特性包括跨平臺能力、豐富的功能模塊和強大的工具集。核心概念與機制元對象系統Qt 擴展了標準 C&#xff0c;通過元對象系統提供信號與槽機制、運行時類型信息和動態屬性系統…

net9 aspose.cell 自定義公式AbstractCalculationEngine,帶超鏈接excel轉html后背景色丟失

AbstractCalculationEngine 是 Aspose.Cells 中一個強大的抽象類&#xff0c;允許您自定義公式計算邏輯。當您需要覆蓋默認計算行為或實現自定義函數時非常有用。直接上代碼1. 創建自定義計算引擎using Aspose.Cells; using System;// 創建自定義計算引擎 public class CustomC…

如何監控員工的電腦?7款實用的員工電腦管理軟件,探索高效管理捷徑!

當銷售團隊在淘寶刷單、設計師用公司電腦挖礦、程序員頻繁訪問代碼托管網站時&#xff0c;企業損失的不僅是帶寬——低效、泄密、合規風險正成為隱形利潤殺手。 傳統管理依賴“人盯人”或抽查日志&#xff0c;但面對分布式辦公與遠程協作趨勢&#xff0c;這些方法早已力不從心…

機器視覺軟件--VisionPro、Visual Master,Halcon 和 OpenCV 的學習路線

Halcon 和 OpenCV區別 Halcon 和 OpenCV 都是計算機視覺領域的重要工具&#xff0c;但它們的設計理念、功能側重和適用場景有顯著不同。下面這個表格匯總了它們的核心區別&#xff0c;方便你快速了解&#xff1a; 開發模式與體驗??&#xff1a;Halcon 配備了強大的??圖形化…

算法-根據前序+中序遍歷打印樹的右視圖

題目請根據二叉樹的前序遍歷&#xff0c;中序遍歷恢復二叉樹&#xff0c;并打印出二叉樹的右視圖數據范圍&#xff1a; 0≤n≤100000≤n≤10000 要求&#xff1a; 空間復雜度 O(n)O(n)&#xff0c;時間復雜度 O(n)O(n)如輸入[1,2,4,5,3],[4,2,5,1,3]時&#xff0c;通過前序遍歷…

Kafka面試精講 Day 7:消息序列化與壓縮策略

【Kafka面試精講 Day 7】消息序列化與壓縮策略 在Kafka的高性能消息系統中&#xff0c;消息序列化與壓縮是影響吞吐量、延遲和網絡開銷的核心環節。作為“Kafka面試精講”系列的第7天&#xff0c;本文聚焦于這一關鍵主題&#xff0c;深入剖析其原理、實現方式、配置策略及常見…

Xterminal軟件下載_Xterminal ssh遠程鏈接工具下載__Xterminal安裝包 網盤下載_Xterminal ssh遠程鏈接工具安裝包

Xterminal 作為一款國產 SSH 工具&#xff0c;專為開發人員量身打造。它支持 SSH 和 Telnet 協議連接遠程服務器與虛擬機&#xff0c;無論是進行代碼部署&#xff0c;還是服務器運維&#xff0c;都能輕松勝任。軟件界面采用極簡設計&#xff0c;黑色背景搭配白色文字&#xff0…

Lua > 洛谷

Lua > 洛谷P1000 超級瑪麗游戲P1001 AB ProblemP1008 [NOIP 1998 普及組] 三連擊P1035 [NOIP 2002 普及組] 級數求和P1046 [NOIP 2005 普及組] 陶陶摘蘋果P1047 [NOIP 2005 普及組] 校門外的樹P1085 [NOIP 2004 普及組] 不高興的津津P1089 [NOIP 2004 提高組] 津津的儲蓄計劃…

小企業環境-火山方舟和扣子

背景說明 并不是說應該怎么辦&#xff0c;而是基本配置有這些可以進行使用&#xff0c;具體不同企業使用的時候肯定要個性化配置。 使用了火山方舟和扣子 火山方舟 應用實驗室列表 簡單使用了提示詞的功能&#xff0c;后端服務ARK_API_KEY 應用ID 來對應請求發送http請求…