嵌入式C編程02結(jié)構(gòu)聯(lián)合枚舉課件_第1頁
嵌入式C編程02結(jié)構(gòu)聯(lián)合枚舉課件_第2頁
嵌入式C編程02結(jié)構(gòu)聯(lián)合枚舉課件_第3頁
嵌入式C編程02結(jié)構(gòu)聯(lián)合枚舉課件_第4頁
嵌入式C編程02結(jié)構(gòu)聯(lián)合枚舉課件_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

結(jié)構(gòu)聯(lián)合枚舉課程安排結(jié)構(gòu)體組合數(shù)據(jù)類型聯(lián)合體組合據(jù)類型枚舉組合據(jù)類型數(shù)組組合了相同類型的數(shù)據(jù)那么對(duì)于不同類型的數(shù)據(jù),如何組合?如何把學(xué)生的所有信息組合在一起:姓名、生日、學(xué)號(hào)、電話號(hào)碼、地址、成績(jī)。。。

不同類型數(shù)據(jù)組合結(jié)構(gòu)體類型定義struct

[結(jié)構(gòu)體名]{

類型標(biāo)識(shí)符成員名;類型標(biāo)識(shí)符成員名;

…………….};成員類型可以是基本型或構(gòu)造型??梢匀我舛喑蓡Tstruct是關(guān)鍵字,不能省略合法標(biāo)識(shí)符可省:無名結(jié)構(gòu)體分號(hào)表明struct定義結(jié)束先定義結(jié)構(gòu)體類型,再定義結(jié)構(gòu)體變量

struct_datedate;

struct_stu_infostu;可以通過typedef來簡(jiǎn)化: 1、typedefstuct_stu_info_tstu_info_t; 2、結(jié)構(gòu)體變量定義需要為結(jié)構(gòu)體變量各個(gè)域分配內(nèi)存,各域內(nèi)存之間連續(xù)分布

printf(“%p\n”,&stu);?printf(“%p\n”,&);?

printf(“%p\n”,&stu.date);?

printf(“%p\n”,&stu.date.year);?

printf(“%p\n”,&stu.phone);?

printf(“%p\n”,&stu.id);?變量?jī)?nèi)存大小=各域需要內(nèi)存之和

sizeof(stu)=?結(jié)構(gòu)體變量?jī)?nèi)存分布結(jié)構(gòu)體變量引用:結(jié)構(gòu)體變量不能整體引用結(jié)構(gòu)體變量比較:結(jié)構(gòu)體變量不能直接用==進(jìn)行比較結(jié)構(gòu)體變量使用數(shù)組變量為結(jié)構(gòu)體類型結(jié)構(gòu)體數(shù)組C99標(biāo)準(zhǔn)編譯器支持指定域賦值

結(jié)構(gòu)體擴(kuò)展語法

structstudent{ intnum;charname[20];charsex;intage;charaddr[30];};structstudentstu={.age=20,.num=12,.sex=12};課程安排結(jié)構(gòu)體組合數(shù)據(jù)類型聯(lián)合體組合據(jù)類型枚舉組合據(jù)類型下面兩種組合結(jié)構(gòu)類型內(nèi)存分配有什么不同?

sizeof(sdate_t)=?sizeof(udate_t)=?聯(lián)合體概念union聯(lián)合體數(shù)據(jù)類型不同類型的變量共占一段內(nèi)存(相互覆蓋)占用空間取決于占最大空間的成員。

聯(lián)合體定義union

聯(lián)合體名{

類型標(biāo)識(shí)符成員名;類型標(biāo)識(shí)符成員名;

…………….};typedeunion

{

類型標(biāo)識(shí)符成員名;類型標(biāo)識(shí)符成員名;

…………….}聯(lián)合體類型;相同性質(zhì)的數(shù)據(jù)中存在不同類型的表示:

數(shù)值有整型數(shù)、字符型數(shù)、浮點(diǎn)型數(shù)學(xué)生有Linux班學(xué)生、Android班學(xué)生,(學(xué)習(xí)科目不同)

聯(lián)合體應(yīng)用

聯(lián)合體應(yīng)用課程安排結(jié)構(gòu)體組合數(shù)據(jù)類型聯(lián)合體組合據(jù)類型枚舉組合據(jù)類型C語言提供了一種稱為“枚舉”的類型在“枚舉”類型的定義中列舉出所有可能的取值,被說明為該“枚舉”類型的變量取值不能超過定義的范圍。

枚舉的概念枚舉類型定義的一般形式為:

enum枚舉名

{

枚舉值表//枚舉值為常量};也可以用typedef自定義類型

typedefenum{

枚舉值表}枚舉類型;

枚舉的定義枚舉常量 枚舉常量是int型的常量,在使用int類型的任何地址都可以使用它

week_tweek=SUN_DAY;printf(“weekis%d\n”,); printf(“sizeof(week_t)is%d\n”,sizeof(week_t));?默認(rèn)值沒有特定指出常量值時(shí),枚舉列表中的常量被指定為整數(shù)值0、1、2等,依次遞增枚舉的使用上機(jī)實(shí)驗(yàn)1、需要記錄的學(xué)生信息為:姓名、年齡、學(xué)號(hào)、性別、成績(jī)。定義結(jié)構(gòu)體類型,表示學(xué)生信息。定義變量并初始化,求變量的內(nèi)存大小。2、Linux開發(fā)班課程為:ARM、C、Linux;而Android開發(fā)班課程為Java、Android。定義聯(lián)合體類型,表示這2種班別各門功課成績(jī)。定義變量并初始化,求變量的內(nèi)存大小。3、設(shè)計(jì)一個(gè)學(xué)生信息表,需

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論