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

正文內(nèi)容

c語言程序設(shè)計(下)ppt-資料下載頁

2024-12-07 21:49本頁面
  

【正文】 通過改變指針數(shù)組中相應(yīng)數(shù)組元素的指向就可以實現(xiàn)排序目的,而不必交換具體的字符串本身,不必移動字符串的物理位置,這樣將大大減少時間的開銷,能提高運行效率,同時節(jié)省了存儲空間。 81 指針 指針數(shù)組的應(yīng)用 【 例 617】 將世界十大奇跡文明遺址(埃及金字塔、宙斯神像、法洛斯燈塔、巴比倫空中花園、阿提密斯神殿、羅得斯島巨像、毛索洛斯墓廟、中國萬里長城、亞歷山卓港、秦始皇兵馬俑)按照英文字母遞增方式排序。 世界十大奇跡文明遺址(英文) {Pyramids of Egypt, Statue of Zeus, Lighthouse of Pharos , Hanging Gardens of Babylon, Temple of Artemis , Colossus of Rhodes, Mausolus Tomb Temple , Great Wall of China , Alexandria Port , Qin Shihuang Terracotta Army}。 82 指針 include include void main( ) {void bubble_sort(char *name[ ],int n)。 void print(char *name[ ],int n)。 char *ruins_name[ ]={Pyramids of Egypt,Statue of Zeus, Lighthouse of Pharos , Hanging Gardens of Babylon, Temple of Artemis , Colossus of Rhodes, Mausolus Tomb Temple , Great Wall of China , Alexandria Port , Qin Shihuang Terracotta Army}。 int m=10。 bubble_sort(ruins_name, m)。 print(ruins_name, m)。 } 83 指針 void bubble_sort(name, n) /* 冒泡法排序 */ char *name[ ]。 int n 。 {char *temp。 int i,j。 for(i=0。in1。i++) {for(j=0。jn1i。j++) if(strcmp(name[j],name[j+1])0) {temp=name[j]。 name[j]=name[j+1]。 name[j+1]=temp。} /*交換字符串的地址 */ } } void print(name, n) /* 將排序后的字符串進行輸出 */ char *name[ ]。 int n。 {int i。 for(i=0。in。i++) printf(%s\n,name[i])。 } 84 指針 在程序的 main主函數(shù)中,定義了字符指針數(shù)組 ruins_name并作了初始化賦值,使得每個數(shù)組元素的初值分別為各個字符串的首地址。 函數(shù) bubble_sort使用冒泡法來完成排序,其形參 n為字符串的個數(shù),另一形參 name為指針數(shù)組,接受實參傳遞過來的ruins_name指針數(shù)組的首地址(即指向待排序各字符串的數(shù)組的指針),所以實參指針數(shù)組 ruins_name和形參指針數(shù)組name就共占同一段內(nèi)存單元,這樣對形參指針數(shù)組 name中元素排序后,就相當于對實參指針數(shù)組 ruins_name中元素進行排序。在 bubble_sort函數(shù)中,對兩個字符串比較采用了strcmp函數(shù), strcmp函數(shù)允許參與比較的字符串以指針方式出現(xiàn)。 函數(shù) print用于將排序后的字符串進行輸出,其形參與bubble_sort的形參相同。 85 指針 需要注意,在排序過程中若發(fā)現(xiàn)位于前面的字符串大于后面的字符串,不 是交換被比較的兩個字符串本身,而是要交換被比較的兩個字符串的指 針。就是說,字符串的存儲位置不變,改變的是字符串指針的存儲位置, 這樣就避免了使用字符串復(fù)制函數(shù) strcpy進行字符串賦值的過程,簡化了 算法,減少了時間的開銷,提高了運行效率,并且也節(jié)省了存儲空間。 ruins_name[0] ruins_name[1] ruins_name[2] ruins_name[3] ruins_name[4] ruins_name[5] ruins_name[6] ruins_name[7] ruins_name[8] ruins_name[9] Pyramids of Egypt Statue of Zeus Lighthouse of Pharos Hanging Gardens of Babylon Temple of Artemis Colossus of Rhodes Mausolus Tomb Temple Great Wall of China Alexandria Port Qin Shihuang Terracotta Army 86 指針 ruins_name[0] ruins_name[1] ruins_name[2] ruins_name[3] ruins_name[4] ruins_name[5] ruins_name[6] ruins_name[7] ruins_name[8] ruins_name[9] Pyramids of Egypt Statue of Zeus Lighthouse of Pharos Hanging Gardens of Babylon Temple of Artemis Colossus of Rhodes Mausolus Tomb Temple Great Wall of China Alexandria Port Qin Shihuang Terracotta Army ruins_name指針數(shù)組 字符串 87 指針 指針數(shù)組作 main函數(shù)的形參 main函數(shù)的一般 形式 指針數(shù)組作為 main函數(shù)的形式參數(shù)也是指針數(shù)組的重要應(yīng)用之一 。 在前面的程序中 , main函數(shù)都是不帶參數(shù)的 ,即 main函數(shù)之后的一對圓括號中為空 , 如 main( ) 的形式 。 而在實際應(yīng)用中 , main函數(shù)是可以帶參數(shù)的 , 這樣的參數(shù)一般稱為命令行參數(shù) 。 在操作系統(tǒng)狀態(tài)下 , 為了執(zhí)行某個程序而鍵入的一行字符稱為命令行 , 它一般以回車作為結(jié)束符 。 命令行中必須要有程序的可執(zhí)行文件名 ( 即命令名 ) , 有時也帶有若干參數(shù) ( 即命令行參數(shù) ) 。 C程序是在 main函數(shù)中使用參數(shù) ( 形參 ) 來接受命令行參數(shù)( 實參 ) 的 。 88 指針 ( 1)帶參數(shù)的 main函數(shù)的一般形式 int main( int argc, char *argv[ ] ) { 函數(shù)體 } 其中,形參 argc用來存放命令行中單詞的個數(shù),它 表示傳遞給程序的參數(shù)個數(shù)(指包括命令名在內(nèi)的 所有參數(shù)),為整型,它的值至少是 1;而形參 argv 是指向字符串的指針數(shù)組,它用來存放命令行中單 詞的內(nèi)容,實際上存放的是命令名和各個命令行參 數(shù)字符串的首地址。形參 argc和 argv的名字可由用 戶任意命名(一般情況下可以不用改變);但是它 們的類型卻是固定的而不能由用戶改變。 89 指針 ( 2)命令行參數(shù)的一般形式 可執(zhí)行文件名 參數(shù) 1 參數(shù) 2 …… 參數(shù) n 當按照可執(zhí)行文件名(即命令名)執(zhí)行程序的時候,系 統(tǒng)會把參數(shù) 參數(shù) …… 、參數(shù) n依次傳遞給該文件名中 main函數(shù)的形參。 在 C語言中, main函數(shù)可以調(diào)用其它函數(shù),其它函數(shù)不 能調(diào)用 main函數(shù),所以無法從程序中得到 main函數(shù)的形參。 實際上,在操作系統(tǒng)狀態(tài)下(如 DOS環(huán)境下),輸入 main函 數(shù)所在的文件名(為包含該 main函數(shù)并且已經(jīng)進行編譯、連 接的可執(zhí)行文件),系統(tǒng)才能調(diào)用該文件名中的 main函數(shù)。 就是說,在命令提示符后面輸入一個命令行,在命令行中應(yīng)包 括命令名(即可執(zhí)行文件名)和要傳遞給 main函數(shù)的實參 (即命令行的參數(shù))。當輸入一個命令行并按下回車鍵后,命 令解釋程序就開始對該命令行進行如下處理:首先根據(jù)命令名 來搜索命令路徑以便找到對應(yīng)的程序文件,然后將命令行參數(shù) 傳遞給該程序文件,最后執(zhí)行該程序文件。 90 指針 由于命令名必須存在 , 所以表示傳遞給程序的參數(shù)個數(shù)argc的值至少是 1。 而 argv[ ]是指針數(shù)組 , 其中的 argv[0]指向命令名字符串 , argv[1]到 argv[argc1]就分別指向命令名后面的各個實參字符串 。 請注意 , 在命令名和參數(shù)之間 、 各個參數(shù)之間要有空格 ,并且文件名應(yīng)該包括文件所在的盤符 、 路徑以及文件的擴展名 。 除了系統(tǒng)提供的各種命令可以通過命令行方式執(zhí)行以外 ,用戶編寫的 C程序經(jīng)過編譯 、 連接成為可執(zhí)行文件后 , 也可以像使用命令一樣使用可執(zhí)行文件名 。 例如, DOS命令提示符下命令行的一般形式為: C:\可執(zhí)行文件名 參數(shù) 1 參數(shù) 2 …… 參數(shù) n 當要運行一個可執(zhí)行文件時,首先在 DOS命令提示符下鍵 入文件名,然后再輸入實際參數(shù)就可以把這些實參傳送給 main函數(shù)的形參中去。 91 指針 命令行參數(shù)的應(yīng)用 由于命令行中各個參數(shù)字符串的長度事先不知道并且通常不相 同,所以利用指針數(shù)組作為 main函數(shù)中的參數(shù)是非常合理的, 可以節(jié)省內(nèi)存存儲空間。 【 例 618】 觀察參數(shù)回送命令 echo程序(文件名為 )。 它只是簡單地輸出命令行上的參數(shù),每個參數(shù)后面 是空格,最后是換行。 include int main( int argc,char *argv[ ] ) {printf (argc=%d\n, argc)。 while (argc0 ) printf (%s%c,*++argv,(argc1)?39。 39。: 39。\n39。)。 } 92 指針 程序運行輸出結(jié)果: argc=5 system browser and show 把文件名為 , 經(jīng)過編譯 、 連接后生成 , 在 DOS環(huán)境下如果輸入命令行: echo system browser and show↙ 對于 *++argv來說 , argv要先與 ++結(jié)合進行 ++argv運算 , 使 得 argv 指向下一個數(shù)組元素;再與前面的 *結(jié)合,以便找到當前 所指向字符串的首地址,然后來輸出該字符串。 第一次,在指針數(shù)組 argv中, argv 指向第一個數(shù)組元素 argv[0],而 argv[0]指向字符串 echo(即命令字符串 echo的首地 址)。進行 ++argv后使得 argv 指向下一個數(shù)組元素 argv[1],再 與前面的 *結(jié)合后找到 argv[1]當前所指向字符串 system的首地 址,然后輸出字符串 system。依次類推,輸出字符串 browser、 and和 show,直到 argc值為 0止。 93 指針 本程序也可以如下編寫: include int main( int argc,char *argv[ ] ) {int i。 printf(argc=%d\n, argc)。 for(i=1。i=argc1。i
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1