欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2414|回復: 1
收起左側

C語言:共用體-閱后即焚的變量

[復制鏈接]
ID:1040469 發表于 2022-8-24 09:43 | 顯示全部樓層 |閱讀模式
共用體-閱后即焚的變量

union共用體即它內部的成員,存儲在同一個地址空間中。
1.jpg 2.jpg 3.jpg 4.jpg

通過圖示,比較生動的讓大家看到,不論來了多少個成員,所有成員只能存儲在同一個地址空間中。那么地址空間的大小具體應該是多大呢?

地址空間的大小取決于最大的數據類型,最大的數據類型有多大,共用體數據的大小就有多少:
5.jpg 6.jpg


從圖示代碼中,可以明確的看到,共用體變量的大小,取決于共用體成員中最大的數據類型,即當最大的是int型整型變量的時候,共用體大小就為4字節,當為double類型的時候,共用體大小就變成了8字節。

那么接下來再帶大家看一下,我們今天的重點,也是對于新手而言比較容易入坑的點,小李將這個特點稱為-“閱后即焚的變量”。
7.jpg

從代碼中,我們可以看到,當我們對公用體的第二個成員賦值之后,再看共用體的第一個成員值,也被改變了。這就是對于共用體的成員都存在同一個地址空間的體現。一個char型變量有8位,當我們賦值之后,系統就會在共用體空間的低八位進行存儲。從而之前存儲的內容就被覆蓋了。
8.jpg

總結,共用體的成員全部存儲在一個空間中,所以對于成員的使用,必須要即配即用,閱后即焚,在一個成員賦值之后,其它的成員的值都會由于公用地址空間的原因受到影響

評分

參與人數 1黑幣 +15 收起 理由
1109 + 15 贊一個!

查看全部評分

回復

使用道具 舉報

ID:57414 發表于 2022-8-24 17:23 | 顯示全部樓層
圖文并茂,很精彩,謝謝樓主!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表