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

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C語言之共用體

發布時間:2020-07-04 14:38:03 來源:網絡 閱讀:253 作者:菜鳥養成記 欄目:編程語言

1:共用體(union)類型的定義

union myunion
{
int a;
char b;
};
int main(void)
{
myunion u1;
u1.a = 23;
printf("u1.b = %d\n", u1.b);     //23
printf("&u1.a = %p \n",&(u1.a));  //&u1.a = 0xbfbe5c04
printf("&u1.b = %p \n",&(u1.b));  //&u1.b = 0xbfbe5c04

}

總體上來講共用體和結構體的定義方法很類似,使用方法也基本一樣

2:共用體和結構體的區別

  (1)結構體類似于一個包裹,結構體中的成員彼此是獨立存在的,分布在內存的不同單元中,他們只是被打包成一個整體叫做結構體而已;共用體中的各個成員其實是一體的,彼此不獨立,他們使用同一個內存單元。可以理解為:有時候是這個元素,有時候是那個元素。更準確的說法是同一個內存空間有多種解釋方式。也就是說共用體是同一個內存空間,里面存放的數值(二進制)是一樣的,使用u1.a去訪問這個內存時是按int類型去解析這個內存空間,使用u1.b去訪問這個內存時是按char類型去解析這個內存空間。總的來說共用體就是同一塊存放著二進制數的內存空間的不同理解方式。

  (2)使用sizeof去測量共用體的大小時,測得的是union中各個元素里面占用內存最大的那個元素的大小。因為這樣才能夠存放下所有的元素。

  (3)union中的元素不存在內存對齊的問題,因為union中實際只有1個類型的內存空間,都是從同一個地址開始的(開始地址就是整個union占有的內存空間的首地址),所以不涉及內存對齊。

3:共用體的主要用途

  (1)共用體就用在那種對同一個內存單元進行多種不同規則解析的這種情況下。

  (2)C語言中其實是可以沒有共用體的,用指針和強制類型轉換可以替代共用體完成同樣的功能,但是共用體的方式更簡單、更便捷、更好理解。










向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

永州市| 富民县| 筠连县| 仙桃市| 德令哈市| 亚东县| 民权县| 巴东县| 和林格尔县| 桐庐县| 谢通门县| 嘉鱼县| 康马县| 沈阳市| 枣阳市| 高阳县| 淳安县| 随州市| 平舆县| 高清| 营口市| 桦川县| 集贤县| 广水市| 佛山市| 神农架林区| 昭平县| 萨迦县| 襄樊市| 萝北县| 丹凤县| 凤凰县| 普兰店市| 屏东县| 无棣县| 土默特左旗| 兴海县| 开平市| 油尖旺区| 康乐县| 绥中县|