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

正文內(nèi)容

第16章常見錯誤和程序調(diào)試(編輯修改稿)

2024-10-22 19:05 本頁面
 

【文章內(nèi)容簡介】 s, p)。 即先根據(jù)需要定義一個大小合適的字符數(shù)組 c,然后將 c數(shù)組的首地址賦給指針變量 p,此時 p有確定的值,指向數(shù)組 c。再執(zhí)行 scanf函數(shù)就沒有問題了,把從鍵盤輸入的字符串存放到字符數(shù)組 c中。 (18) switch語句的各分支中漏寫 break語句。 例如: switch(score) { case 5: printf(V ery good! )。 case 4: printf(Good! )。 case 3: printf(Pass! )。 case 2: printf(Fail! )。 defult: printf(data error! )。 } 上述 switch語句的作用是希望根據(jù) score(成績 )打印出評語。但當(dāng) score的值為 5時,輸出為 V ery Good! Good! Pass! Fail! data error! 原因是漏寫了 break語句。 case只起標(biāo)號的作用,而不起判斷作用,因此在執(zhí)行完第一個 printf函數(shù)語句后接著執(zhí)行第 5個 printf函數(shù)語句。應(yīng)改為 switch(score) { case 5: printf(V erygood! )。 break。 case 4: printf(Good! )。 break。 case 3: printf(Pass! )。 break。 case 2: print(Fail! )。 break。 defult: print(data error! )。 } (19) 混淆字符和字符串的表示形式。 char sex。 sex=M。 … sex是字符變量,只能存放一個字符。而字符常量的形式是用單引號括起來的,應(yīng)改為 sex=39。M39。 “M”是用雙引號括起來的字符串,它包括兩個字符:‘ M’和‘ \0’,無法存放到字符變量 sex中。 (20) 使用自加 (++)和自減 ()運(yùn)算符時出的錯誤。 例如: main( ) { int p, a[5]={ 1, 3, 5, 7, 9} 。 p=a。 printf(%d, *p++)。 } 不少人認(rèn)為“ *p++”的作用是先使 p加 1,即指向第 1個元素 a[1]處,然后輸出第一個元素 a[1]的值 3。其實(shí)應(yīng)該是先執(zhí)行 p++,而 p++的作用是先用 p的原值,用完后使 p加 1。 p的原值指向數(shù)組 a的第 0個元素 a[0],因此 *p就是第 0個元素 a[0]的值 1。結(jié)論是先輸出 a[0]的值,然后再使 p加 1。如果是 *(++p),則先使 p指向 a[1],然后輸出 a[1]的值。 (21) 有人習(xí)慣用傳統(tǒng)的方式對函數(shù)形參進(jìn)行聲明,但卻把對函數(shù)的形參和函數(shù)中的局部變量混在一起定義。如: max(x, y) int x, y,z 。 {z =x> y? x, y。 return(z )。 } 應(yīng)改為 max(x, y) int x, y。 { int z 。 z =x> y? x: y。 return(z )。 } (22) 所調(diào)用的函數(shù)在調(diào)用語句之后才定義,而又在調(diào)用前未加說明。 main( ) { float x, y,z 。 x=3. 5。y=7. 6。 z =max(x, y)。 printf(%f\n,z )。 } float max(float x, float y) { return(z =x> y? x: y)。 } 這個程序乍看起來沒有什么問題,但在編譯時有出錯信息。原因是 max函數(shù)是實(shí)型的,而且在 main函數(shù)之后才定義,也就是 max函數(shù)的定義位置在 main函數(shù)中的調(diào)用 max函數(shù)之后。改錯的方法可以用以下二者之一: ① 在 main函數(shù)中增加一個對 max函數(shù)的聲明,即函數(shù)的原型: main( ) { float max(float, float)。/*聲明將要用到的 max函數(shù)為實(shí)型 */ float x, y,z 。 x=3. 5。y=7. 6。 z =max(x, y)。 printf(%f\n,z )。 } ② 將 max函數(shù)的定義位置調(diào)到 main函數(shù)之前。即: float max(float x, float y) { return(z =x> y? x: y)。} main() { float x, y,z 。 x=3. 5。y=7. 6。 z =max(x, y)。 printf(%f\n,z )。 } 這樣,編譯時不會出錯,程序運(yùn)行結(jié)果是正確的。 (23) 誤認(rèn)為形參值的改變會影響實(shí)參的值。 main( ) { inta, b。 a=3。b=4。 swap(a, b)。 printf(%d, %d\n, a, b)。 } swap(int x, int y) { int t。 t=x。x=y。y=t。 } 原意是通過調(diào)用 swap函數(shù)使 a和 b的值對換,然后在 main函數(shù)中輸出已對換了值的 a和 b。但是這樣的程序是達(dá)不到目的的,因?yàn)?x和 y的值的變化是不傳送回實(shí)參 a和 b的, main函數(shù)中的 a和 b的值并未改變。 如果想從函數(shù)得到一個以上的變化了的值,應(yīng)該用指針變量。用指針變量作函數(shù)參數(shù),使指針變量所指向的變量的值發(fā)生變化。此時變量的值改變了,主調(diào)函數(shù)中可以利用這些已改變的值。如: main( ) { int a, b, *p1, *p2。 a=3。b=4。 p1=amp。a。p2=amp。b。 swap(p1, p2)。 printf(“%d, %d\n”, a, b)。 /*a和 b的值已對換 */ } swap(int *pt1, int *pt2) { int t。
點(diǎn)擊復(fù)制文檔內(nèi)容
物理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1