freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

第7章自定義數(shù)據(jù)類型(參考版)

2024-10-21 13:05本頁面
  

【正文】 有時程序會依賴于硬件特性,用 typedef便于移植。 (3) 當(dāng)在不同源文件中用到同一類型數(shù)據(jù)(尤其是像數(shù)組、指針、結(jié)構(gòu)體、共用體等類型數(shù)據(jù))時,常用 typedef聲明一些數(shù)據(jù)類型,把它們單獨放在一個頭文件中,然后在需要用到它們的文件中用#include命令把它們包含進來,以提高編程效率。用 typedef可以聲明數(shù)組類型、字符串類型,使用比較方便。 習(xí)慣上常把用 typedef聲明的類型名用大寫字母表示,以便與系統(tǒng)提供的標(biāo)準(zhǔn)類型標(biāo)識符相區(qū)別。 ② 將變量名 n換成自己指定的類型名: int NUM[100]; ③ 在前面加上 typedef, 得到 typedef int NUM[100]; ④ 用來定義變量: NUM n。 ④ 然后可以用新類型名去定義變量。 ② 將變量名換成新類型名(如將 i換成 COUNT)。 // p1, p2為 POINTER類型的指針變量 歸納起來,聲明一個新的類型名的方法是: ① 先按定義變量的方法寫出定義語句(如 int i。這樣就可以用 DATE定義變量: DATE birthday; DATE *p。 int year。 也可以聲明結(jié)構(gòu)體類型: typedef struct //注意在 struct之前用了關(guān)鍵字 typedef, 表示是聲明新名 { int month。 如果在一個程序中,整型變量是專門用來計數(shù)的,可以用 COUNT來作為整型類型名: 用 typedef聲明類型 typedef int COUNT。 ② INTEGER i,j; REAL a,b。如 typedef int INTEGER; //指定用標(biāo)識符 INTEGER代表 int類型 typedef float REAL; //指定用 REAL代表 float類型 這樣,以下兩行等價: ① int i,j。但顯然用枚舉變量更直觀,因為枚舉元素都選用了令人 “ 見名知意 ” 的標(biāo)識符,而且枚舉變量的值限制在定義時規(guī)定的幾個枚舉元素范圍內(nèi),如果賦予它一個其他的值,就會出現(xiàn)出錯信息,便于檢查。 //輸出符合條件的組合的個數(shù) return 0。 } } coutendl。 break。 break。 break。 break。 break。 //使 pri的值為 k default:break。 //使 pri的值為 j case 3: pri=color(k)。 //color(i)是強制類型轉(zhuǎn)換,使 pri的值為 i case 2: pri=color(j)。loop++) //先后對 3個球作處理 {switch (loop) //loop的值先后為 1,2,3 {case 1: pri=color(i)。 //輸出當(dāng)前的 n值,字段寬度為 3 for (loop=1。 (k!=j)) //3個球的顏色都不同 {n=n+1。k++) //只有前兩個球的顏色不同,才需要檢查第 3個球的顏色 if ((k!=i) amp。j++) //當(dāng) j為某一顏色時 if (i!=j) //若前兩個球的顏色不同 { for (k=red。i++) //當(dāng) i為某一顏色時 for (j=red。 //n是累計不同顏色的組合數(shù) for (i=red。 //聲明枚舉類型 color color pri。 include iostream include iomanip //在輸出時要用到 setw控制符 using namespace std。 例 口袋中有紅、黃、藍、白、黑 5種顏色的球若干個。 (3) 枚舉值可以用來做判斷比較。 (2) 枚舉元素作為常量,它們是有值的, C++編譯按定義時的順序?qū)λ鼈冑x值為 0,1,2,3,… 。也可以直接定義枚舉變量,如 enum{sun, mon, tue, wed, thu, fri, sat} workday,week_end; 這些標(biāo)識符并不自動地代表什么含義。 week_end=sun。 根據(jù)以上對枚舉類型 weekday的聲明,枚舉變量的值只能是 sun到 sat之一。 在 C語言中,枚舉類型名包括關(guān)鍵字 enum, 以上的定義可以寫為 enum weekday workday,week_end。如 weekday workday,week_end。 聲明枚舉類型的一般形式為 枚舉類型 enum 枚舉類型名 {枚舉常量表列 }。表示這個類型的變量的值只能是以上 7個值之一。例如 enum weekday{sun, mon, tue, wed, thu, fri, sat}。所謂 “ 枚舉 ” 是指將變量的值一一列舉出來,變量的值只能在列舉出來的值的范圍內(nèi)。往往需要試驗多次。 } return 0。i++) {if (person[i].job==′s′) coutperson[i].numsetw(6)person[i].name″ ″person[i].sex ″ ″person[i].jobsetw(10)person[i].endl。 for(i=0。 //若是學(xué)生則輸入年級 else if (person[i].job==′t′) cinperson[i].。i++) //輸入兩個學(xué)生的數(shù)據(jù) {cinperson[i].numperson[i].nameperson[i].sexperson[i].job。 for(i=0。 //成員 category 為共用體變量 }person[2]。 //年級 char position[10]。 char job。 char name[10]。 程序如下: include iostream include string include iomanip //因為在輸出流中使用了控制符 setw using namespace std。 要求輸入人員的數(shù)據(jù),然后再輸出。 Wang是 prof(教授 )。即 Li是 3年級的。現(xiàn)要求把它們放在同一表格中,見圖 。教師的數(shù)據(jù)包括: 姓名、號碼、性別、職業(yè)、職務(wù)。 共用體類型數(shù)據(jù)的特點 例 設(shè)有若干個人員的數(shù)據(jù),其中有學(xué)生和教師。 (3) 共用體變量的地址和它的各成員的地址都是同一地址。但請注意: 在每一瞬時只能存放其中一種,而不是同時存放幾種。等。 是錯誤的,應(yīng)該寫成 cout。 }a,b,c; (無共用體類型名 ) 不能引用共用體變量,而只能引用共用體變量中的成員。 char ch。 double d。 union data { int i。每個成員分別占有其自己的內(nèi)存單元。但它們的含義是不同的。 當(dāng)然也可在聲明共用體類型的同時定義共用體變量,也可沒有共用體類型名而直接定義共用體變量。這種使幾個不同的變量共占同一段內(nèi)存的結(jié)構(gòu),稱為共用體 (union)類型的結(jié)構(gòu) (有些書譯為聯(lián)合 )。 圖 共用體 共用體的概念 以上 3個變量在內(nèi)存中占的字節(jié)數(shù)不同,但都從同一地址開始存放。 有時需要使幾種不同類型的變量存放到同一段內(nèi)存單元中。 可以看到: 要訪問用 new所開辟的結(jié)構(gòu)體空間,無法直接通過變量名進行,只能通過指針 p進行訪問。 //撤銷該空間 return 0。 coutpnameendlpnumendlpsexendl。 //向結(jié)構(gòu)體變量的成員賦值 pnum=10123。 //定義指向結(jié)構(gòu)體類型 Student的數(shù)據(jù)的指針變量 p=new Student。 }。 int num。 include iostream include string using namespace std。 delete運算符使用的一般格式為 delete [ ] 指針變量 例如要撤銷上面用 new開辟的存放單精度數(shù)的空間(上面第 5個例子 ),應(yīng)該用 delete p; 前面用 “ new char[10]。 //開辟一個存放單精度數(shù)的空間,并指定該實數(shù)的初值為 //,將返回的該空間的地址賦給指針變量 p new運算符使用的一般格式為 new 類型 [初值 ] 用 new分配數(shù)組空間時不能指定初值。 //開辟一個存放字符數(shù)組 (包括 10個元素 )的空間,返回首元素的地址 new int[5][4]。 //開辟一個存放整數(shù)的存儲空間,返回一個指向該存儲空間的地址 (即指針 ) * 動態(tài)分配和撤銷內(nèi)存的運算符 new和 delete new int(100)。雖然為了與 C語言兼容, C++仍保留 malloc和free函數(shù),但建議用戶不用 malloc和 free函數(shù),而用new和 delete運算符。 C++提供了較簡便而功能較強的運算符 new和 delete來取代 malloc和 free函數(shù)。 在軟件開發(fā)過程中,常常需要動態(tài)地分配和撤銷內(nèi)存空間,例如對動態(tài)鏈表中結(jié)點的插入與刪除。 引用變量主要用作函數(shù)參數(shù),它可以提高效率,而且保持程序良好的可讀性。 程序 (3)的實參是結(jié)構(gòu)體 Student類型變量,而形參用 Student類型的引用,虛實結(jié)合時傳遞的是 stu的地址,因而效率較高。 程序 (2)采用指針變量作為實參和形參,空間和時間的開銷都很小,效率較高。stud) //函數(shù)定義,形參為結(jié)構(gòu)體 Student變量的引用 {cout″ ″″ ″[0]″ ″ [1]″ ″[2]endl。 //實參為結(jié)構(gòu)體 Student變量 return 0。)。 }stu
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1