最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語(yǔ)言共用體union作用使用示例教程

 更新時(shí)間:2022年02月16日 11:40:45   作者:?jiǎn)虇碳业凝堼? 
這篇文章主要為大家介紹了C語(yǔ)言共用體union作用的使用示例教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

共用體 union

什么是共用體 union?這個(gè)共用體,估計(jì)大家平時(shí)在代碼也比較少見(jiàn),我去看了;其實(shí)這個(gè)共用體 union(也叫聯(lián)合體)跟結(jié)構(gòu)體定義是非常像的,比如說(shuō):類(lèi)型定
義、變量定義、使用方法上很相似。就像下面兩個(gè)例子一樣,把許多類(lèi)型聯(lián)合在一起

 union st{
 char a;
 int b;
 }

共用體也是一種自定義類(lèi)型,可以通過(guò)它來(lái)創(chuàng)建變量,例如:

union num{
    int n;
    char ch;
    double f;
};
union num a, b, c;

也可以在定義共用體的同時(shí)創(chuàng)建變量:

union num{
    int n;
    char ch;
    double f;
} a, b, c;

如果不定義新的變量,也可以將共用體的名字省略:

union{
    int n;
    char ch;
    double f;
} a, b, c;

開(kāi)鍋解構(gòu)

說(shuō)到這里我扯一下結(jié)構(gòu)體,結(jié)構(gòu)體是用來(lái)存放一組不同類(lèi)型的數(shù)據(jù)。結(jié)構(gòu)體的定義形式為:

struct 結(jié)構(gòu)體名{
結(jié)構(gòu)體所包含的變量或數(shù)組
};

結(jié)構(gòu)體和共用體又有什么淵源嗎?
這里先端上一份代碼:

#include <stdio. h>
 typedef union{
 int a;
 char c;
 //int a;
 //int b;
 }st;
 int main(void)
 {
 st bit;
 bit. c='B';
 // bit. a=10;
 //bit. b=60;
 printf("the haha size is%d\n", sizeof(bit));
 printf( "haha. c=%d\n", bit. c);
 return 0;
 }

我們可以看到結(jié)果:

在這里插入圖片描述

通過(guò)上面的代碼,可以發(fā)現(xiàn)這個(gè)共用體的大小,并不是像我們之前結(jié)構(gòu)體那樣是把每個(gè)成員所占內(nèi)存大小加起來(lái),而是我們上面說(shuō)的那樣,共用體由成員占用內(nèi)存大小最大的那個(gè)決定的。

上面的示例中int占用4個(gè)字節(jié)大小,為最大的,所以 sizeof(bit) 得出結(jié)果就是4個(gè)字節(jié)大小,其實(shí)打印出來(lái)的結(jié)果a和b都是60,它是訪問(wèn)內(nèi)存占用大小最大的那個(gè)成員的數(shù)值,因?yàn)槟莻€(gè)’ B '的ASCII碼值是是66。union訪問(wèn)其成員方式跟結(jié)構(gòu)體是一樣滴

其實(shí)結(jié)構(gòu)體類(lèi)似于一個(gè)人體,人體中的器官彼此是獨(dú)立存在的,結(jié)構(gòu)體的成員也是如此,分布在內(nèi)存的不同單元中,他們只是被打包成一個(gè)整體叫做結(jié)構(gòu)體而已;共用體中的各個(gè)成員其實(shí)是一體的,彼此不獨(dú)立,他們使用同一個(gè)內(nèi)存單元。可以理解為:有時(shí)候是這個(gè)元素,有時(shí)候是那個(gè)元素。更準(zhǔn)確的說(shuō)法是同一個(gè)內(nèi)存空間有多種解釋方式。

小結(jié)一手

  • 1.union中可以定義多個(gè)成員, union的內(nèi)存大小由最大的成員的大小來(lái)決定。
  • 2.union成員共享同一塊大小的內(nèi)存,一次只能使用其中的一個(gè)成員。
  • 3.對(duì)某一個(gè)成員賦值,因?yàn)樗麄児灿猛粔K內(nèi)存,所以當(dāng)他們字節(jié)數(shù)相同時(shí),會(huì)覆蓋其他成員的值;但如果不同就只會(huì)覆蓋相同類(lèi)型的成員。比如我賦值給int類(lèi)型,就會(huì)覆蓋其他int 類(lèi)型而char類(lèi)型只會(huì)在旁邊吃瓜,不受影響。
  • 4.union的存放順序都是由低地址開(kāi)始存放。
  • 5.union中sizeof觀測(cè)到的大小實(shí)際上是union中各個(gè)元素里面占用內(nèi)存的最大的的那個(gè)元素大小。因?yàn)榭梢源娴孟逻@個(gè)就一定可以存的下其他元素。

以上就是C語(yǔ)言共用體union作用使用示例教程的詳細(xì)內(nèi)容,更多關(guān)于C語(yǔ)言共用體union的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • C++示例講解觀察者設(shè)計(jì)模式

    C++示例講解觀察者設(shè)計(jì)模式

    觀察者模式是極其重要的一個(gè)設(shè)計(jì)模式,也是我?guī)啄觊_(kāi)發(fā)過(guò)程中使用最多的設(shè)計(jì)模式,本文首先概述觀察者模式的基本概念和Demo實(shí)現(xiàn),接著是觀察者模式在C++中的應(yīng)用,最后是對(duì)觀察者模式的應(yīng)用場(chǎng)景和優(yōu)缺點(diǎn)進(jìn)行總結(jié)
    2022-12-12
  • C#和C++編程語(yǔ)言中的類(lèi)淺析

    C#和C++編程語(yǔ)言中的類(lèi)淺析

    在本篇文章里我們給大家分析了C#和C++編程語(yǔ)言中的類(lèi)的相關(guān)知識(shí)點(diǎn),正在學(xué)習(xí)的朋友們跟著操作下。
    2019-02-02
  • C語(yǔ)言基礎(chǔ)解析之分支與循環(huán)語(yǔ)句

    C語(yǔ)言基礎(chǔ)解析之分支與循環(huán)語(yǔ)句

    C語(yǔ)言是一門(mén)結(jié)構(gòu)化的程序設(shè)計(jì)語(yǔ)言,當(dāng)C語(yǔ)言用來(lái)描述生活中的事物時(shí),會(huì)用到三種結(jié)構(gòu):順序結(jié)構(gòu)(不去贅述),選擇結(jié)構(gòu)(對(duì)應(yīng)分支語(yǔ)句),循環(huán)結(jié)構(gòu)(對(duì)應(yīng)循環(huán)語(yǔ)句),分支語(yǔ)句:分支語(yǔ)句分為兩種,一種是if語(yǔ)句,一種是switch語(yǔ)句
    2021-09-09
  • MFC Frame-Splitter模型實(shí)例原理解析

    MFC Frame-Splitter模型實(shí)例原理解析

    這篇文章主要介紹了MFC Frame-Splitter模型實(shí)例原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • C++基于回溯法解決八皇后問(wèn)題示例

    C++基于回溯法解決八皇后問(wèn)題示例

    這篇文章主要介紹了C++基于回溯法解決八皇后問(wèn)題,簡(jiǎn)單描述了八皇后問(wèn)題,以及回溯法的原理與解決八皇后問(wèn)題的相關(guān)操作技巧,需要的朋友可以參考下
    2017-11-11
  • C語(yǔ)言基于EasyX庫(kù)實(shí)現(xiàn)有圖形界面鐘表

    C語(yǔ)言基于EasyX庫(kù)實(shí)現(xiàn)有圖形界面鐘表

    這篇文章主要介紹了C語(yǔ)言基于EasyX庫(kù)實(shí)現(xiàn)有圖形界面鐘表,直線轉(zhuǎn)動(dòng)端點(diǎn)計(jì)算,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • C++使用HDF5庫(kù)實(shí)現(xiàn)將h5圖像轉(zhuǎn)為tif格式

    C++使用HDF5庫(kù)實(shí)現(xiàn)將h5圖像轉(zhuǎn)為tif格式

    這篇文章主要為大家詳細(xì)介紹了C++ 語(yǔ)言如何通過(guò)hdf5庫(kù)與gdal庫(kù)實(shí)現(xiàn)將.h5格式的多波段HDF5圖像批量轉(zhuǎn)換為.tif格式,有需要的可以參考一下
    2024-12-12
  • opencv3/C++ FLANN特征匹配方式

    opencv3/C++ FLANN特征匹配方式

    今天小編就為大家分享一篇opencv3/C++ FLANN特征匹配方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-12-12
  • C++模板template用法小結(jié)(推薦)

    C++模板template用法小結(jié)(推薦)

    這篇文章主要介紹了C++模板template用法總結(jié) ,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03
  • C++實(shí)現(xiàn)LeetCode(157.用Read4來(lái)讀取N個(gè)字符)

    C++實(shí)現(xiàn)LeetCode(157.用Read4來(lái)讀取N個(gè)字符)

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(157.用Read4來(lái)讀取N個(gè)字符),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07

最新評(píng)論

交城县| 阜阳市| 土默特右旗| 武平县| 深水埗区| 恩平市| 若羌县| 罗田县| 丰都县| 库尔勒市| 大同县| 伊春市| 高阳县| 永丰县| 泰州市| 迁西县| 长子县| 伊宁市| 翁源县| 肥东县| 五原县| 合阳县| 清丰县| 静安区| 印江| 织金县| 樟树市| 景宁| 洛川县| 兴国县| 林周县| 吉水县| 梁河县| 上虞市| 蓬安县| 来宾市| 万全县| 卢氏县| 蒙自县| 兴安盟| 枝江市|