




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第8章 自定義類型與字符串,前面介紹的整型、浮點(diǎn)型、字符型和數(shù)組型等都是C+語言中預(yù)定義的數(shù)據(jù)類型,在程序中直接定義這些類型的變量即可使用。在C+中允許用戶自定義類型,包括結(jié)構(gòu)體、共用體和枚舉類型等。用戶自定義類型需要先定義數(shù)據(jù)類型,然后再定義該種類型的變量才能使用。字符串是最常用的一種數(shù)據(jù)形式,它是一組字符的序列。,8.1 結(jié)構(gòu)體,C+語言中,預(yù)定義的數(shù)據(jù)類型只能描述簡單類型的數(shù)據(jù)。但在實(shí)際應(yīng)用中,常常有許多不同類型的數(shù)據(jù)也作為一個(gè)整體存在。這就需要一種結(jié)構(gòu),它能包含各種不同的數(shù)據(jù)類型而形成一個(gè)復(fù)合的數(shù)據(jù)類型,這就是結(jié)構(gòu)體。,8.1.1 結(jié)構(gòu)體的概念和聲明,當(dāng)在程序中描述一個(gè)學(xué)生時(shí),對于每一
2、個(gè)學(xué)生需要有以下基本信息:學(xué)號、姓名、性別、年齡、成績等。如果將這些信息用彼此獨(dú)立的變量來描述,將難以反映它們之間的關(guān)系。因此,需要將它們組成一個(gè)整體來描述。C+語言提供了管理這些數(shù)據(jù)的類型為結(jié)構(gòu)體類型。,8.1.2 結(jié)構(gòu)體變量的定義,結(jié)構(gòu)體類型定義之后并不為其分配內(nèi)存,也就無法存儲數(shù)據(jù),只有在程序中定義了結(jié)構(gòu)體類型變量之后才能存儲數(shù)據(jù)。結(jié)構(gòu)體類型變量簡稱結(jié)構(gòu)體變量。聲明結(jié)構(gòu)體變量有以下3種方式。 1定義結(jié)構(gòu)體類型的同時(shí)定義結(jié)構(gòu)體變量 2使用無名結(jié)構(gòu)體類型聲明結(jié)構(gòu)體變量 3用結(jié)構(gòu)體類型聲明結(jié)構(gòu)體變量,8.1.3 結(jié)構(gòu)體變量的初始化,所謂結(jié)構(gòu)體變量的初始化,是指在定義結(jié)構(gòu)體變量的同時(shí)給結(jié)構(gòu)體變量
3、賦初值。其初始化的方式有兩種,一是用花括號( )括起來的若干成員值對結(jié)構(gòu)體變量初始化;二是用同類型的變量對結(jié)構(gòu)體變量初始化。,8.1.4 結(jié)構(gòu)體的使用,聲明了結(jié)構(gòu)體變量后,就可以對其進(jìn)行訪問了。在C+語言中,對相同類型的結(jié)構(gòu)體變量可以進(jìn)行賦值運(yùn)算,但不能對其進(jìn)行直接輸入或輸出運(yùn)算。,8.2 共用體,共用體(union,也稱為聯(lián)合體)也是一種用戶自定義數(shù)據(jù)類型,它與結(jié)構(gòu)體類型比較相像,也是由若干個(gè)數(shù)據(jù)成員組成,并且引用成員的方式也一樣。但它們也有區(qū)別,結(jié)構(gòu)體定義了一組相關(guān)數(shù)據(jù)的集合,而共用體定義了一塊為所有數(shù)據(jù)成員共享的內(nèi)存空間。,8.2.1 共用體類型及其變量,定義共用體類型的一般格式如下。
4、union ; ; ; ;,8.2.2 共用體的使用,共用體變量及其成員的使用與結(jié)構(gòu)體變量及其成員的使用類似。對相同類型的共用體變量可以進(jìn)行賦值運(yùn)算,但不能對其直接進(jìn)行輸入或輸出的運(yùn)算。對共用體成員的引用也是采用點(diǎn)運(yùn)算符進(jìn)行的,共用體成員可以進(jìn)行各種運(yùn)算。,8.3 枚舉類型,枚舉類型也是一種用戶自定義類型,是由若干個(gè)常量組成的有限集合。枚舉就是將所有可能的取值一枚一枚地列舉出來,主要適用于變量的值有一定范圍的情況。,8.3.1 枚舉類型與枚舉變量,在實(shí)際問題中,有些變量的取值被限定在一個(gè)有限的范圍內(nèi)。例如,一個(gè)星期內(nèi)只有七天,一年只有十二個(gè)月等。如果把這些變量聲明為整型、字符型等類型是不夠貼切
5、的。C+語言提供了一種稱為“枚舉”的類型。在枚舉類型的定義中列舉出所有可能的取值,被聲明為該“枚舉”類型的變量其取值不能超過定義的范圍。,8.3.2 枚舉類型的使用,在程序中可以將枚舉元素視為一個(gè)整型常量,枚舉變量的值為該枚舉類型定義中的某個(gè)元素的值。枚舉變量可以進(jìn)行算術(shù)運(yùn)算、賦值運(yùn)算、關(guān)系運(yùn)算或邏輯運(yùn)算等。,8.4 類型定義,C+語言不僅提供了豐富的數(shù)據(jù)類型,而且還允許由用戶自己定義類型說明符,也就是說,允許由用戶為數(shù)據(jù)類型取別名。類型定義符typedef即可用來完成此功能。利用typedef來聲明類型說明符的一般語法格式如下。 typedef ;,8.5 字符串,字符串是若干個(gè)字符的序列,
6、在某種程度上類似與字符的數(shù)組。程序中會頻繁地使用到字符串,C+中可以用不同方式來操作字符串。,8.5.1 C風(fēng)格字符串處理,C語言中沒有專門的字符串類型,一般操作字符串都是通過數(shù)組完成的。在本書的第3章中已經(jīng)介紹了用字符數(shù)組來操作字符串的方式。在這里需要提及的是,sizeof( )操作符和strlen( )函數(shù)在操作字符串時(shí)的區(qū)別。,8.5.2 用指針操作字符串,在C和C+中都可以用指針來操作字符串,可以用以下3種方式來進(jìn)行操作。 1指針指向字符數(shù)組型字符串 2指針指向字符串常量 3利用動(dòng)態(tài)內(nèi)存來操作字符串,8.5.3 C+字符串處理,利用數(shù)組和指針操作數(shù)組是比較煩瑣的,而且容易出錯(cuò)。為此,C+為開發(fā)者提供了更為方便和高效率的字符串類型。 1C+字符串的基本操作 2C+字符串的字符串操作函數(shù),8.5.4 常用字符串的操作函數(shù),下面將介紹幾個(gè)用于字符串的函數(shù),使用它們將幫助開發(fā)者更方便的處理有關(guān)字符串的操作。由于這些函數(shù)都包含在string.h頭文件中,所以使用時(shí)也要包含該頭文件。 1strcpy 2strcat 3strcmp 4strlen,8.6 本章實(shí)例,編寫簡單的學(xué)生信息管理系統(tǒng)。利用結(jié)構(gòu)體來定義學(xué)生信息內(nèi)容,其中包含學(xué)生學(xué)號、姓名、科目成績。通過鍵盤輸入學(xué)生信息,并輸出到屏幕上。,8.7 小結(jié),本章主要
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 朗誦書法活動(dòng)方案
- 景區(qū)愛心活動(dòng)方案
- 暑期蛋糕diy活動(dòng)方案
- 晨光幼兒園教研活動(dòng)方案
- 最美廳堂評比活動(dòng)方案
- 木屋營銷活動(dòng)策劃方案
- 來賓美食活動(dòng)策劃方案
- 村級水庫致富活動(dòng)方案
- 暑期游泳課活動(dòng)方案
- 景區(qū)戶外燒烤活動(dòng)方案
- GB/T 15316-2024節(jié)能監(jiān)測技術(shù)通則
- 幼兒園食堂舉一反三自查報(bào)告
- 光伏分布式項(xiàng)目日報(bào)模板
- 診斷學(xué)題庫(附答案)
- 重要概念一胎產(chǎn)式胎兒身體縱軸與母體縱軸之間的關(guān)系
- 人力資源 公司勞務(wù)派遣招聘流程及制度
- 降低住院患者壓力性損傷發(fā)生率
- 三年級上冊《貴州省生態(tài)文明城市建設(shè)讀本》小學(xué)中年級版教案
- 08D800-8民用建筑電氣設(shè)計(jì)與施工防雷與接地
- 福建省醫(yī)療機(jī)構(gòu)三伏貼醫(yī)療技術(shù)備案表
- JBT 14645-2023 低溫裝置用密封墊片 (正式版)
評論
0/150
提交評論