中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

通遼做網(wǎng)站制作公司一個(gè)公司可以做幾個(gè)百度推廣

通遼做網(wǎng)站制作公司,一個(gè)公司可以做幾個(gè)百度推廣,做快手網(wǎng)站,商企通三合一網(wǎng)站建設(shè)【C語言】——聯(lián)合體與枚舉 一、聯(lián)合體1.1、聯(lián)合體類型的聲明1.2、聯(lián)合體的特點(diǎn)1.3、相同成員的結(jié)構(gòu)體和聯(lián)合體對比1.4、聯(lián)合體的大小計(jì)算1.5、聯(lián)合體的應(yīng)用舉例 二、枚舉2.1、枚舉類型的聲明2.2、枚舉類型的優(yōu)點(diǎn) 一、聯(lián)合體 1.1、聯(lián)合體類型的聲明 聯(lián)合體也叫做共用體 ??與…

【C語言】——聯(lián)合體與枚舉

    • 一、聯(lián)合體
      • 1.1、聯(lián)合體類型的聲明
      • 1.2、聯(lián)合體的特點(diǎn)
      • 1.3、相同成員的結(jié)構(gòu)體和聯(lián)合體對比
      • 1.4、聯(lián)合體的大小計(jì)算
      • 1.5、聯(lián)合體的應(yīng)用舉例
    • 二、枚舉
      • 2.1、枚舉類型的聲明
      • 2.2、枚舉類型的優(yōu)點(diǎn)

一、聯(lián)合體

1.1、聯(lián)合體類型的聲明

??
??聯(lián)合體也叫做共用體
??與結(jié)構(gòu)體一樣,聯(lián)合體也是自定義類型,同樣,也是由一個(gè)或多個(gè)的成員構(gòu)成,這些成員類型可以相同也可以不同。
??與結(jié)構(gòu)體不同的是,編譯器只會(huì)為聯(lián)合體中最大的成員開辟足夠的內(nèi)存空間。正如聯(lián)合體這個(gè)名字一樣,聯(lián)合體的所有成員共用這一塊內(nèi)存空間。
??這樣,因?yàn)槭褂玫氖峭粔K內(nèi)存,一個(gè)聯(lián)合體成員改變,其他聯(lián)合體成員也會(huì)跟著改變。
??
??聯(lián)合體的聲明與結(jié)構(gòu)體非常類似,下面我們直接看代碼:

#include<stdio.h>//聯(lián)合類型的聲明
union Un
{char c;int i;
};int main()
{//聯(lián)合變量的定義union Un un = { 0 };//計(jì)算各個(gè)變量的大小printf("%d\n", sizeof(un));return 0;
}

??
運(yùn)行結(jié)果:

在這里插入圖片描述

??為什么大小是 4 呢?我們一起來學(xué)習(xí)聯(lián)合體的特點(diǎn)
??

1.2、聯(lián)合體的特點(diǎn)

??聯(lián)合體最大的特點(diǎn)就是所有成員共用一塊內(nèi)存空間,因此聯(lián)合體變量的大小,至少最大成員變量的大小(因?yàn)槁?lián)合體至少保證有能力存儲(chǔ)那個(gè)成員)
??
??我們可以通過代碼來理解聯(lián)合體的特點(diǎn)
??
代碼一:

#include<stdio.h>//聯(lián)合類型的聲明
union Un
{char c;int i;
};int main()
{//聯(lián)合變量的定義union Un un = { 0 };//下面輸出的結(jié)果是一樣的嗎?printf("%d\n", &(un.i));printf("%d\n", &(un.c));printf("%d\n", &un);
}

??
運(yùn)行結(jié)果:
在這里插入圖片描述

??
代碼二:

#include<stdio.h>//聯(lián)合類型的聲明
union Un
{char c;int i;
};int main()
{//聯(lián)合變量的定義union Un un = { 0 };un.i = 0x11223344;un.c = 0x55;printf("%x\n", un.i);return 0;
}

運(yùn)行結(jié)果:

在這里插入圖片描述

??
??可以看到,代碼一中,取出的三個(gè)地址都是一樣的,說明成員之間共用一個(gè)內(nèi)存空間
??
??至于代碼二,我們發(fā)現(xiàn)低位字節(jié)的內(nèi)容改了,我們可以通過畫圖來分析
??

在這里插入圖片描述

??

??看到這里,不知大家有沒有聯(lián)想到判斷大小端存儲(chǔ)(詳情請看【C語言】——數(shù)據(jù)在內(nèi)存中的存儲(chǔ)),是的,我們可以利用聯(lián)合體來對判斷機(jī)器是大端存儲(chǔ)還是小端存儲(chǔ)
??

int check_sys()
{union{int i;char c;}un;un.i = 1;return un.c;
}

??
??我們往聯(lián)合體成員 i i i 中放入1,在返回聯(lián)合體成員 c c c,因?yàn)? c c c c h a r char char 類型,取出的是 i i i地址最小的字節(jié)的內(nèi)容,當(dāng)取出值為 1,說明低位數(shù)字放低地址,為小端存儲(chǔ);如果為 0,說明低位數(shù)字放高地址,為大端存儲(chǔ)
??
??

1.3、相同成員的結(jié)構(gòu)體和聯(lián)合體對比

??
??下面,我們來對比一下相同成員的結(jié)構(gòu)體和聯(lián)合體的內(nèi)存布局情況:

struct S
{char c;int i;
};union Un
{char c;int i;
};

??

在這里插入圖片描述

??

1.4、聯(lián)合體的大小計(jì)算

??
??首先,我們來看下面兩種聯(lián)合體的大小

#include<stdio.h>
union Un1
{char c[5];int i;
};
union Un2
{short c[7];int i;
};int main()
{//下面的輸出結(jié)果是什么printf("%d\n", sizeof(union Un1));printf("%d\n", sizeof(union Un2));return 0;
}

??
運(yùn)行結(jié)果:

在這里插入圖片描述

??

為什么會(huì)這樣呢?聯(lián)合體的大小是怎么計(jì)算的呢?它滿足兩條規(guī)則:

  • 聯(lián)合體的大小至少是其最大成員的大小
  • 當(dāng)最大成員的大小不是最大對齊數(shù)的整數(shù)倍時(shí),就要對齊到最大對齊數(shù)的整數(shù)倍
    ??

圖示:

在這里插入圖片描述

??通過這圖,就能很好地分析出上面兩個(gè)聯(lián)合體的大小啦

??
??

1.5、聯(lián)合體的應(yīng)用舉例

??
??結(jié)構(gòu)體的使用,最主要的是節(jié)省空間

??現(xiàn)在有這么一個(gè)場景:我們要舉辦一個(gè)活動(dòng),要上線一個(gè)禮品兌換單,兌換單中有三種商品:圖書、杯子、襯衫。每一種商品都有:庫存量,價(jià)格、商品類型以及和商品類型相關(guān)的其他信息

  • 圖書:書面、作者、頁數(shù)
  • 杯子:設(shè)計(jì)
  • 襯衫:設(shè)計(jì)、可選顏色、可選尺寸

??我們不耐心思考,直接寫出一下結(jié)構(gòu)

struct gift_list
{//公共屬性int stock_number;//庫存量double price;//定價(jià)int item_type;//商品類型//特殊屬性char title[20];//書名char autor[20];//作者int num_pages;//頁數(shù)char design[30];//設(shè)計(jì)int colors;//顏色int sizes;//尺寸
};

??
??上述的結(jié)構(gòu)設(shè)計(jì)的其實(shí)很簡單,用起來也很方便,但是結(jié)構(gòu)匯的設(shè)計(jì)中包含了所有禮品的各種屬性,這樣使得結(jié)構(gòu)體的大小就會(huì)偏大,比較浪費(fèi)內(nèi)存。因?yàn)閷τ诙Y品兌換單種的商品來說,只有部分屬性信息是常用的,比如:
??
??商品時(shí)圖書,就不需要 d e s i g n design design c o l o r s colors colors、 s i z e s sizes sizes
??
??所以我們就可以把公共屬性單獨(dú)寫出來,剩余屬于各種商品本身的屬性使用聯(lián)合體這樣就可以減少內(nèi)存所需要的內(nèi)存空間,一定程度上節(jié)省了內(nèi)存。
??

struct gift_list
{//公共屬性int stock_number;//庫存量double price;//定價(jià)int item_type;//商品類型//特殊屬性union {struct{char title[20];//書名char autor[20];//作者int num_pages;//頁數(shù)}book;struct{char design[30];//設(shè)計(jì)}mug;struct{char design[30];//設(shè)計(jì)int colors;//顏色int sizes;//尺寸}shirt;};
};

??
??

二、枚舉

2.1、枚舉類型的聲明

??C語言中枚舉是什么?沒錯(cuò),就是你想的那個(gè)枚舉
??枚舉就是一一列舉
??把可能的取值一 一列舉
??當(dāng)然,一 一列舉的前提是他是有限個(gè)數(shù)
??
比如:

  • 一周的天數(shù)是有限的,7天,可以一一列舉
  • 性別有:男、女、保密,可以一一列舉
  • 三原色,可以一一列舉
    ??

這些數(shù)據(jù)的表示就可以使用枚舉了

enum Day//星期
{Mon,Tues,Wed,Thur,Fri,Sat,Sun
};enum Sex//性別
{MALE,FEMALE,SECRET
};enum Coloe//顏色
{RED,GREEN,BLUE
};

??
??上述定義的 e n u m enum enum D a y Day Day e n u m enum enum S e x Sex Sex、 e n u m enum enum C o l o r Color Color 就是枚舉類型
??而{}中的內(nèi)容就是可能的取值,也叫枚舉常量
??這些可能取值都是有值的,默認(rèn)從 0 開始,依次往后遞增 1
??
當(dāng)然,我們定義枚舉類型時(shí),也可以自己給它賦初值

enum Coloe//顏色
{RED = 2,GREEN = 4,BLUE = 8
};

??
??

2.2、枚舉類型的優(yōu)點(diǎn)

??我們可以用 # d e f i n e define define 為什么還要用枚舉呢?
??
相比與 # d e f i n e define define,枚舉有以下優(yōu)點(diǎn)

  • 增加代碼的可讀性可維護(hù)性
  • 和 # d e f i n e define define 定義的標(biāo)識(shí)符相比,枚舉類型有類型檢查,更加嚴(yán)謹(jǐn)
  • 便于調(diào)試,預(yù)處理階段會(huì)替換 # d e f i n e define define 定義的符號(hào)
  • 方便使用,一次可定義多個(gè)常量
  • 枚舉常量是遵從作用域規(guī)則的,枚舉聲明在函數(shù)范圍內(nèi),只能在該函數(shù)內(nèi)部使用。
    ??

枚舉類型的使用

enum Color//顏色
{RED=1,GREEN=2,BLUE=4
};enum Color clr = GREEN;//使用枚舉常量給枚舉變量賦值

??那我們不禁想:是否可以拿整數(shù)給枚舉常量賦值呢?在 C語言 中是可以的,但是在 C++ 是不行的,C++ 的類型檢查比較嚴(yán)格。
??
??
??
??


??好啦,本期關(guān)于聯(lián)合體與枚舉的知識(shí)就介紹到這里啦,希望本期博客能對你有所幫助。同時(shí),如果有錯(cuò)誤的地方請多多指正,讓我們在C語言的學(xué)習(xí)路上一起進(jìn)步!

http://www.risenshineclean.com/news/41217.html

相關(guān)文章:

  • 網(wǎng)購app有哪些?長沙seo計(jì)費(fèi)管理
  • 網(wǎng)站設(shè)計(jì)的總結(jié)深圳網(wǎng)站快速排名優(yōu)化
  • 免費(fèi)建站網(wǎng)站大全長沙網(wǎng)站推廣seo
  • 網(wǎng)站建設(shè)后臺(tái)是什么推廣聯(lián)盟平臺(tái)
  • 購物網(wǎng)站開發(fā)實(shí)戰(zhàn)企業(yè)網(wǎng)站優(yōu)化排名
  • 做國際貿(mào)易都用什么網(wǎng)站seo優(yōu)化排名是什么
  • 網(wǎng)站建設(shè)驗(yàn)收標(biāo)準(zhǔn)銷售推廣方案
  • 烏魯木齊培訓(xùn)網(wǎng)站建設(shè)網(wǎng)站自然優(yōu)化
  • 黃驊市第三中學(xué)關(guān)鍵詞優(yōu)化包年推廣
  • 如何寫一個(gè)可以做報(bào)價(jià)計(jì)算的網(wǎng)站網(wǎng)絡(luò)服務(wù)網(wǎng)絡(luò)推廣
  • 為什么自己做的網(wǎng)站別的電腦打不開廣州新聞最新消息今天
  • 怎么做游戲自動(dòng)充值的網(wǎng)站重慶高端網(wǎng)站seo
  • 信息化平臺(tái)的功能介紹搜索引擎優(yōu)化 簡歷
  • 深圳住房和建設(shè)局網(wǎng)站輪候大廳網(wǎng)絡(luò)營銷屬于什么專業(yè)類型
  • 移動(dòng)端使用wordpress富文本編輯器便宜的seo官網(wǎng)優(yōu)化
  • 全自動(dòng)網(wǎng)站建設(shè)最新實(shí)時(shí)大數(shù)據(jù)
  • wordpress好用還是dede磐石網(wǎng)站seo
  • 上海高端定制網(wǎng)站公司關(guān)鍵詞優(yōu)化的技巧
  • 門戶網(wǎng)登錄入口seo軟件定制
  • wordpress視覺編輯器seo在線優(yōu)化工具
  • 上海網(wǎng)站公司電話seo推廣是什么意思
  • 權(quán)大師的網(wǎng)站是哪個(gè)公司做的香港疫情最新消息
  • 網(wǎng)站建設(shè)為中心百度關(guān)鍵詞收錄
  • 個(gè)人主頁自助建站搜索引擎的工作原理分為
  • 孝感 網(wǎng)站建設(shè)百度電商廣告代運(yùn)營
  • 棗莊專業(yè)做網(wǎng)站競價(jià)廣告代運(yùn)營
  • 網(wǎng)站域名個(gè)人備案查詢推廣平臺(tái)排行榜app
  • 國外超酷設(shè)計(jì)網(wǎng)站游戲推廣
  • 如何做服裝的微商城網(wǎng)站重慶森林經(jīng)典臺(tái)詞獨(dú)白
  • 云南省建設(shè)工程招標(biāo)投標(biāo)行業(yè)協(xié)會(huì)網(wǎng)站百度seo排名優(yōu)化教程