版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第8章 自定義類型與字符串,前面介紹的整型、浮點型、字符型和數(shù)組型等都是C+語言中預定義的數(shù)據(jù)類型,在程序中直接定義這些類型的變量即可使用。在C+中允許用戶自定義類型,包括結構體、共用體和枚舉類型等。用戶自定義類型需要先定義數(shù)據(jù)類型,然后再定義該種類型的變量才能使用。字符串是最常用的一種數(shù)據(jù)形式,它是一組字符的序列。,8.1 結構體,C+語言中,預定義的數(shù)據(jù)類型只能描述簡單類型的數(shù)據(jù)。但在實際應用中,常常有許多不同類型的數(shù)據(jù)也作為一個整體存在。這就需要一種結構,它能包含各種不同的數(shù)據(jù)類型而形成一個復合的數(shù)據(jù)類型,這就是結構體。,8.1.1 結構體的概念和聲明,當在程序中描述一個學生時,對于每一
2、個學生需要有以下基本信息:學號、姓名、性別、年齡、成績等。如果將這些信息用彼此獨立的變量來描述,將難以反映它們之間的關系。因此,需要將它們組成一個整體來描述。C+語言提供了管理這些數(shù)據(jù)的類型為結構體類型。,8.1.2 結構體變量的定義,結構體類型定義之后并不為其分配內存,也就無法存儲數(shù)據(jù),只有在程序中定義了結構體類型變量之后才能存儲數(shù)據(jù)。結構體類型變量簡稱結構體變量。聲明結構體變量有以下3種方式。 1定義結構體類型的同時定義結構體變量 2使用無名結構體類型聲明結構體變量 3用結構體類型聲明結構體變量,8.1.3 結構體變量的初始化,所謂結構體變量的初始化,是指在定義結構體變量的同時給結構體變量
3、賦初值。其初始化的方式有兩種,一是用花括號( )括起來的若干成員值對結構體變量初始化;二是用同類型的變量對結構體變量初始化。,8.1.4 結構體的使用,聲明了結構體變量后,就可以對其進行訪問了。在C+語言中,對相同類型的結構體變量可以進行賦值運算,但不能對其進行直接輸入或輸出運算。,8.2 共用體,共用體(union,也稱為聯(lián)合體)也是一種用戶自定義數(shù)據(jù)類型,它與結構體類型比較相像,也是由若干個數(shù)據(jù)成員組成,并且引用成員的方式也一樣。但它們也有區(qū)別,結構體定義了一組相關數(shù)據(jù)的集合,而共用體定義了一塊為所有數(shù)據(jù)成員共享的內存空間。,8.2.1 共用體類型及其變量,定義共用體類型的一般格式如下。
4、union ; ; ; ;,8.2.2 共用體的使用,共用體變量及其成員的使用與結構體變量及其成員的使用類似。對相同類型的共用體變量可以進行賦值運算,但不能對其直接進行輸入或輸出的運算。對共用體成員的引用也是采用點運算符進行的,共用體成員可以進行各種運算。,8.3 枚舉類型,枚舉類型也是一種用戶自定義類型,是由若干個常量組成的有限集合。枚舉就是將所有可能的取值一枚一枚地列舉出來,主要適用于變量的值有一定范圍的情況。,8.3.1 枚舉類型與枚舉變量,在實際問題中,有些變量的取值被限定在一個有限的范圍內。例如,一個星期內只有七天,一年只有十二個月等。如果把這些變量聲明為整型、字符型等類型是不夠貼切
5、的。C+語言提供了一種稱為“枚舉”的類型。在枚舉類型的定義中列舉出所有可能的取值,被聲明為該“枚舉”類型的變量其取值不能超過定義的范圍。,8.3.2 枚舉類型的使用,在程序中可以將枚舉元素視為一個整型常量,枚舉變量的值為該枚舉類型定義中的某個元素的值。枚舉變量可以進行算術運算、賦值運算、關系運算或邏輯運算等。,8.4 類型定義,C+語言不僅提供了豐富的數(shù)據(jù)類型,而且還允許由用戶自己定義類型說明符,也就是說,允許由用戶為數(shù)據(jù)類型取別名。類型定義符typedef即可用來完成此功能。利用typedef來聲明類型說明符的一般語法格式如下。 typedef ;,8.5 字符串,字符串是若干個字符的序列,
6、在某種程度上類似與字符的數(shù)組。程序中會頻繁地使用到字符串,C+中可以用不同方式來操作字符串。,8.5.1 C風格字符串處理,C語言中沒有專門的字符串類型,一般操作字符串都是通過數(shù)組完成的。在本書的第3章中已經(jīng)介紹了用字符數(shù)組來操作字符串的方式。在這里需要提及的是,sizeof( )操作符和strlen( )函數(shù)在操作字符串時的區(qū)別。,8.5.2 用指針操作字符串,在C和C+中都可以用指針來操作字符串,可以用以下3種方式來進行操作。 1指針指向字符數(shù)組型字符串 2指針指向字符串常量 3利用動態(tài)內存來操作字符串,8.5.3 C+字符串處理,利用數(shù)組和指針操作數(shù)組是比較煩瑣的,而且容易出錯。為此,C+為開發(fā)者提供了更為方便和高效率的字符串類型。 1C+字符串的基本操作 2C+字符串的字符串操作函數(shù),8.5.4 常用字符串的操作函數(shù),下面將介紹幾個用于字符串的函數(shù),使用它們將幫助開發(fā)者更方便的處理有關字符串的操作。由于這些函數(shù)都包含在string.h頭文件中,所以使用時也要包含該頭文件。 1strcpy 2strcat 3strcmp 4strlen,8.6 本章實例,編寫簡單的學生信息管理系統(tǒng)。利用結構體來定義學生信息內容,其中包含學生學號、姓名、科目成績。通過鍵盤輸入學生信息,并輸出到屏幕上。,8.7 小結,本章主要
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 餐飲安全培訓心得總結課件
- 福利政策科技賦能
- 2025年高校教師個人年終工作總結(2篇)
- 跨境交易模式
- 餐飲培訓加盟商課件
- 中醫(yī)24節(jié)氣養(yǎng)生
- 工業(yè)設備智能化改造項目方案報告
- 中考語文說明文閱讀專項訓練套卷
- 小學語文復習重點與教學策略
- 餐車使用安全培訓總結課件
- 國家開放大學電大本科《流通概論》復習題庫
- 機關檔案匯編制度
- 2025年下半年四川成都溫江興蓉西城市運營集團有限公司第二次招聘人力資源部副部長等崗位5人參考考試題庫及答案解析
- 2026福建廈門市校園招聘中小學幼兒園中職學校教師346人筆試參考題庫及答案解析
- 2025年高職物流管理(物流倉儲管理實務)試題及答案
- 中國古代傳統(tǒng)節(jié)日與民俗文化
- 高校申報新專業(yè)所需材料匯總
- (機構動態(tài)仿真設計)adams
- NB-T 31053-2021 風電機組電氣仿真模型驗證規(guī)程
- GB/T 1048-2019管道元件公稱壓力的定義和選用
- 文化創(chuàng)意產品設計及案例PPT完整全套教學課件
評論
0/150
提交評論