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

正文內(nèi)容

c程序設(shè)計(jì)教程:第4章-構(gòu)造類型初探-資料下載頁(yè)

2025-09-25 16:55本頁(yè)面
  

【正文】 量不一 , 這就大大減少了內(nèi)存開銷 。 程序輸出為: DOG CAT COMPUTER MICROPROCESSOR DATA ? 在程序開始執(zhí)行時(shí) , 可將命令行傳送給程序 。 當(dāng)調(diào)用主程序 main時(shí) , 讓它帶有二個(gè)參數(shù) 。 ? 第 1個(gè)參數(shù)習(xí)慣上叫做 argc, 是表示被調(diào)用程序所帶命令行參數(shù)的數(shù)目;第 2個(gè)參數(shù) argv是指針數(shù)組 , 其中每個(gè)元素是指向包含命令行參數(shù)的字符串的指針 , 即每個(gè)指針對(duì)應(yīng)一個(gè)字符串 , 而第1個(gè)指針指向的通常是命令名字符串 。 ? 在實(shí)際應(yīng)用中 , 命令行參數(shù)是很有用的 。 【 例 】 實(shí)現(xiàn) echo命令,該命令實(shí)現(xiàn)參數(shù)回響, 將它的命令行參數(shù)回響在一個(gè)單行上,并用空格將它們分隔。 include iostream using namespace std。 void main (int argc, char *argv[]) { for(int i=1。 iargc。 ++i) cout(argv[i],(iargc1)?39。 39。:39。\n39。)。//注意 39。 39。不是 39。 39。 } 這個(gè)程序不能在 Windows下運(yùn)行 , 要轉(zhuǎn)到 DOS窗 口下執(zhí)行 , 例如: C:\ echo hello world CR 輸出: hello world 在執(zhí)行上述命令時(shí) , 這兩個(gè)參數(shù)值將是 : argc = 3 argv[ 0] 是 “ echo” argv[ 1] 是 “ hello” argv[ 2] 是 “ world” 也就是說, main函數(shù)可以獲得命令行參數(shù)的個(gè)數(shù) 及參數(shù)的內(nèi)容。 類型定義關(guān)鍵字 typedef ? typedef是類型定義關(guān)鍵字 , 一般用來將一個(gè)較長(zhǎng)的類型名定義成一個(gè)短名字 , 以方便使用 。 ? 這個(gè)說明只是定義了原標(biāo)識(shí)符的別名 , 并不產(chǎn)生新的數(shù)據(jù)類型 。 如: typedef float REAL。 REAL x。 就是先用 typedef定義了一個(gè)關(guān)鍵字 REAL,用來代表類型關(guān)鍵字 float;第 2句是用關(guān)鍵字 REAL說明變量 x的類型為 float類型。因此,上述說明與說明語(yǔ)句 “ float x?!钡男Ч耆嗤?。 ? 例如使用 typedef定義指針: typedef char * points。 定義標(biāo)識(shí)符 points, 以后在程序中就可使用 points用如下方式定字符型指針 ps: points ps。 ? 使用 typedef定義新關(guān)鍵字來說明類型有如下兩點(diǎn)好處: ① 為程序提供較好的說明信息 , 使程序便于閱讀 。 ② 使程序參數(shù)化 , 便于移植 。 枚 舉 ? 枚舉是一個(gè)被命名為整型常數(shù)的集合 。 這些常數(shù)指定了所有的類型已被定義的合法值 。 ? 枚舉定義使用關(guān)鍵字 enum , 其一般形式為: enum 枚舉類型名 { 枚舉元素表 } 對(duì)象表 。例如 , 定義一個(gè) number的枚舉和屬于這種類型的枚舉對(duì)象 num: enum number{ four=4,five,six, one=1,two,three }num。 ? 枚舉元素的默認(rèn)值依次類推為 0, 1, 2, …… 。 ? 如果在定義時(shí)指定某個(gè)枚舉元素 , 則其后面的元素值依次加 1。 ? 一個(gè)枚舉其實(shí)是將每個(gè)元素用它們所對(duì)應(yīng)的整數(shù)來代替 。 在上面的枚舉中 , six=6, three=3。 也可以指定負(fù)數(shù) 。 對(duì)象 num只能取枚舉表里的元素 。枚舉名和對(duì)象表 (有時(shí)程序中并不需要它們 )是可選擇項(xiàng) , 也可像下面這樣定義: enum {four=4,five,six,one=1,two,three}。 【 例 】 使用枚舉的例子。 include iostream using namespace std。 void main( ) { //沒有枚舉名和對(duì)象表 enum {four=4,five,six,one=1,two,three}。 //沒有對(duì)象表 enum weekday { sun, mon, tue, wed, thu, fri, sat}。 weekday today。 //聲明枚舉對(duì)象 today=sat。 //為枚舉對(duì)象賦值 coutfour,five,six,one ,two,threeendl。 int num。 for(num=one。 num=three。 num++) coutnum 。 coutendl。 if (today==sun||today==sat) coutTake a rest!endl。 else coutWork hard!endl。 today=wed。 if (today==sun||today==sat) coutTake a rest!endl。 else coutWork hard!endl。 } 輸出結(jié)果如下 。 4,5,6,1,2,3 1 2 3 Take a rest! Work hard! 結(jié) 構(gòu) ? 眾所周知 , 當(dāng)對(duì)若干個(gè)數(shù)據(jù)進(jìn)行集中處理時(shí) , 使用數(shù)組會(huì)帶來很多方便 。 但是 , 數(shù)組要求所處理的數(shù)據(jù)必須具有相同的類型 。 ? 假如使用結(jié)構(gòu)類型的數(shù)據(jù) , 就可以處理不同類型的數(shù)據(jù) 。 從這個(gè)意義上講 , 數(shù)組只不過是結(jié)構(gòu)類型的一種特殊類型 。 ? 把結(jié)構(gòu)類型簡(jiǎn)稱為結(jié)構(gòu) ( struct) 。 結(jié)構(gòu)是構(gòu)造類型的重要成員 , 本節(jié)的重點(diǎn)是介紹結(jié)構(gòu)類型 。 結(jié)構(gòu)定義及其對(duì)象的初始化 1. 結(jié)構(gòu)定義 2. 結(jié)構(gòu)對(duì)象的初始化 3. 結(jié)構(gòu)使用的運(yùn)算符 1. 結(jié)構(gòu)定義 ? 結(jié)構(gòu)同數(shù)組類似 , 也是由若干元素構(gòu)成的 , 習(xí)慣上稱這些結(jié)構(gòu)元素為結(jié)構(gòu)成員 。 ? 能夠做結(jié)構(gòu)成員的不只是基本數(shù)據(jù)類型的對(duì)象 , 還可以是構(gòu)造類型 ( 數(shù)組 、 指針甚至是其他類型的結(jié)構(gòu) ) 。 ? 對(duì)象使用成員運(yùn)算符 “ . ” ( 即圓點(diǎn) ) 訪問各個(gè)成員 ,其成員的運(yùn)算可像普通對(duì)象一樣處理 。 關(guān)鍵字 struct用來定義一個(gè)結(jié)構(gòu) , 結(jié)構(gòu)定義形式是: struct 結(jié)構(gòu)名 { }結(jié)構(gòu)對(duì)象名列表 。 //可以同時(shí)定義多個(gè)結(jié)構(gòu)對(duì)象 ? 結(jié)構(gòu)對(duì)象名列表中的各個(gè)對(duì)象用 “ , ” 隔開 。 下面是先定義結(jié)構(gòu)名 , 再定義結(jié)構(gòu)對(duì)象: struct 結(jié)構(gòu)名 { }。 結(jié)構(gòu)名 結(jié)構(gòu)對(duì)象名列表 。 ? 可以同時(shí)定義多個(gè)結(jié)構(gòu)對(duì)象 。 結(jié)構(gòu)對(duì)象與各個(gè)成員之間引用的一般形式為: 結(jié)構(gòu)對(duì)象名 . 成員名 ? 一般常使用 typedef定義結(jié)構(gòu) , 以便使用簡(jiǎn)單些 。下面定義一個(gè)具有學(xué)生姓名 、 地址及數(shù) 、 理 、 化成績(jī)的結(jié)構(gòu): typedef struct { char *name。 //姓名 char *address。 //地址 int num[ 3] 。 //成績(jī)數(shù)組 } LIST。 //使用大寫表示它是該結(jié)構(gòu)的別名 LIST student。 //定義結(jié)構(gòu)對(duì)象 student ? 定義結(jié)構(gòu)時(shí) , 結(jié)構(gòu)對(duì)象名和結(jié)構(gòu)名不能相同 。 2. 結(jié)構(gòu)對(duì)象的初始化 ? 可在定義時(shí)對(duì)結(jié)構(gòu)對(duì)象初始化,這時(shí)需要把成員所對(duì)應(yīng)的初始值按成員順序給出。 ? 也可在定義了結(jié)構(gòu)對(duì)象之后使用賦值運(yùn)算符給對(duì)象的各個(gè)域名賦值,這時(shí)沒有先后次序之分。 ? 所謂結(jié)構(gòu)對(duì)象的域名,就是結(jié)構(gòu)中定義的各種數(shù)據(jù)類型對(duì)象的名字,簡(jiǎn)稱結(jié)構(gòu)的域。 【 例 】 結(jié)構(gòu)對(duì)象初始化實(shí)例。 include iostream using namespace std。 struct list { char *name。 char *address。 int num[ 3] 。 } a={ Wang Ying, Shang Hai, {82, 79, 85 } }。 //別忘了分號(hào) void main( ) { cout" " " " [0] " " [1] " “ [2] 。 } ? 只需在結(jié)構(gòu)對(duì)象后面加上賦值運(yùn)算符 , 把成員的對(duì)應(yīng)值用一對(duì) “ {}”號(hào)括起來 , 放在賦值運(yùn)算符后面即可 。 ? 運(yùn)行結(jié)果為: Wang Ying Shang Hai 82 79 85 ? 也可以在主程序里定義結(jié)構(gòu)對(duì)象并直接初始化,或者先定義再用賦值語(yǔ)句初始化,初始化與順序無關(guān)。 3. 結(jié)構(gòu)使用的運(yùn)算符 ? 結(jié)構(gòu)所使用的運(yùn)算符有如下兩個(gè): ① 成員運(yùn)算符 “ . ” 在存取成員數(shù)值時(shí)使用 , 其優(yōu)先級(jí)最高 , 并具有左結(jié)合性 。 在處理包含結(jié)構(gòu)的結(jié)構(gòu)時(shí) , 可記作: 這說明結(jié)構(gòu)對(duì)象 structa有結(jié)構(gòu)對(duì)象成員 structb;結(jié)構(gòu)對(duì)象 structb有對(duì)象成員 memberc。 ② 取址運(yùn)算符 “ & ” 能把結(jié)構(gòu)對(duì)象 ( 例如 a) 的地址傳遞給對(duì)象 、 指針或函數(shù) 。 傳遞給函數(shù)就是用& a作函數(shù)參數(shù) 。 如函數(shù)名為 print, 使用結(jié)構(gòu)作為參數(shù): print(& a)。 結(jié)構(gòu)數(shù)組 ? 結(jié)構(gòu)數(shù)組定義與一般結(jié)構(gòu)對(duì)象定義基本相同 , 只是結(jié)構(gòu)數(shù)組對(duì)象后面要給出下標(biāo) 。 ? 也可以使用 typedef方式定義 。 下面是結(jié)構(gòu)與結(jié)構(gòu)數(shù)組對(duì)象分開定義的例子: struct key { char keyword。 int keycount。 }。 key keytab[ 5] 。 ? 同所有的數(shù)組對(duì)象一樣 , 結(jié)構(gòu)數(shù)組的下標(biāo)從 0 開始 。 結(jié)構(gòu)數(shù)組的初始化和結(jié)構(gòu)對(duì)象的初始化是類似的 。 和普通數(shù)組一樣 , 當(dāng)給定初值而 “ [ ]”中為空時(shí) , 編譯程序會(huì)計(jì)算初值表中結(jié)構(gòu)數(shù)組對(duì)象的個(gè)數(shù) , 以確定結(jié)構(gòu)數(shù)組元素的個(gè)數(shù) 。 【 例 】 結(jié)構(gòu)數(shù)組初始化實(shí)例。 struct sports_name { char *name。 int count。 }x[ ] = { {Li Ning, 120}, {Lang Ping, 35}, {Zhu Jian Hua, 98}, {Lan Ju Jie, 0 }}。 include iostream using namespace std。 void main( ) { for ( int i=0。 i4。 i++ ) cout x[ i] .name:x[ i] .countendl。 } 運(yùn)行結(jié)果如下 : Li Ning: 120 Lang Ping: 35 Zhu Jian Hua: 98 Lan Ju Jie: 0 結(jié)構(gòu)指針 ? 如同指針可指向數(shù)組及其元素一樣 , 指針也可指向一個(gè)結(jié)構(gòu)對(duì)象或結(jié)構(gòu)數(shù)組 。 ? 凡是指向結(jié)構(gòu)對(duì)象的指針 , 都稱為結(jié)構(gòu)指針 , 它們的定義和使用方法與數(shù)組指針一樣 。 使用指針訪問結(jié)構(gòu)成員的一般形式是: 指向結(jié)構(gòu)對(duì)象指針的名字 成員名字 ? 結(jié)構(gòu)指針的初始化也可以使用&運(yùn)算符,&運(yùn)算符可以把結(jié)構(gòu)對(duì)象的首地址賦給結(jié)構(gòu)指針。 ? 【 例 】 中使用自身結(jié)構(gòu)指針作為成員,演示了鏈表概念。 【 例 】 演示鏈表結(jié)構(gòu)的實(shí)例。 include iostream using namespace std。 struct person { char *name。 char *address。 int num[3]。 person *next。 }a[5]={{TangMin,Wu
點(diǎn)擊復(fù)制文檔內(nèi)容
職業(yè)教育相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1