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

正文內(nèi)容

[工學(xué)]c語言第四版課件第7章函數(shù)-在線瀏覽

2024-12-05 23:36本頁面
  

【正文】 傳遞 P175 1. 形式參數(shù)和實際參數(shù) P175 ? 形式參數(shù)(簡稱“形參”) ? 在定義函數(shù)時函數(shù)名后面括弧中的 變量名稱 為“形式參數(shù)”(簡稱“形參”)。 ? 在主調(diào)函數(shù)中調(diào)用一個函數(shù)時,函數(shù)名后面括弧中的參數(shù) (可以是一個表達(dá)式 )稱為“實際參數(shù)”(簡稱“實參”)。 P176 ? 在調(diào)用函數(shù)過程中,系統(tǒng)會把實參的值傳遞給被調(diào)用函數(shù)的形參。 ? 該值在函數(shù)調(diào)用期間有效,可以參加該函數(shù)的運算。 例 調(diào)用函數(shù)時的數(shù)據(jù)傳遞。 /* 對 max1函數(shù)的聲明 */ int a, b, c; scanf("% d,% d",& a,& b); c= max( a, b); printf(“ max is% d", c); } int max( int x, int y) /* 定義有參函數(shù) max1 */ { int z; z= x> y? x∶y; return(z); } 運行結(jié)果: 7, 8 max is 8 關(guān)于形參與實參的說明 P177 (1)形參存儲單元的分配與釋放。 只有在發(fā)生函數(shù)調(diào)用時, 函數(shù) max 中的形參才被分配內(nèi)存單元。 (2) 形參只可以是變量。 在調(diào)用時將實參的值賦給形參。請參閱 節(jié))。 再強調(diào): *形參只可以是變量。 如果實參為整型而形參 x為實型,或者相反,則按第 2章介紹的不同類型數(shù)值的賦值規(guī)則進(jìn)行轉(zhuǎn)換。 字符型與整型可以互相通用。 即單向傳遞,只由實參傳給形參,而不能由形參傳回來給實參的。如圖 。 在定義函數(shù)中指定的形參,在未出現(xiàn)函數(shù)調(diào)用時,它們并不占內(nèi)存中的存儲單元。 續(xù) ? ( 2) 將實參對應(yīng)的值傳遞給形參。 ? ( 4) 在函數(shù)調(diào)用最后, 通過 return(表達(dá)式 ) 語句將函數(shù)值帶回到主調(diào)函數(shù)。 說明 ? 在調(diào)用函數(shù)時,給形參分配存儲單元,并將實參對應(yīng)的值傳遞給形參,調(diào)用結(jié)束后,形參單元被釋放,實參單元仍保留并維持原值。 ? 例如,若在執(zhí)行函數(shù)過程中 x和 y的值變?yōu)?10和 15,而 a和 b仍為 2和 3,見圖 。 int a=5, b=7。 printf(“\n%d %d\n”, a,b )。 b+=200。 } 函數(shù)的返回值 P178 通常,希望通過函數(shù)調(diào)用使主調(diào)函數(shù)能得到一個確定的值,這就是函數(shù)的返回值。 return語句的一般形式: return (表達(dá)式 ) 。 ? 如果需要從被調(diào)用函數(shù)帶回一個函數(shù)值(供主調(diào)函數(shù)使用),被調(diào)用函數(shù)中必須包含 return語句。 (2) 函數(shù)值的類型。 例如: int max(float x, float y) /* 函數(shù)值為整型 */ char letter(char c1, char c2) /* 函數(shù)值為字符型 */ double min(int x, int y) /* 函數(shù)值為雙精度型 */ *建議在定義函數(shù)時一律要指定類型。 如果函數(shù)值的類型和 return語句中表達(dá)式的值不一致,則以函數(shù)類型為準(zhǔn)。 轉(zhuǎn)換的原則:即函數(shù)類型決定返回值的類型。 float a, b; int c; scanf("% f,% f,",& a,& b); c= max1( a, b); printf(“ max is % d\ n", c); } int max1( float x, float y) { float z; /* z為實型變量 */ z= x> y? x∶y; return(z); } 說明: *函數(shù) max定義為整型,而 return語句中的 z 為實型,二者不一致。 如果將 main函數(shù)中的 c 定義為實型,用 % f格式符輸出,也是輸出 2. 000000。 (4) 對于不帶回值的函數(shù),應(yīng)當(dāng)用 “void”定義函數(shù)為無類型。 *為使程序減少出錯,保證正確調(diào)用,凡不要求帶回函數(shù)值的函數(shù),一般應(yīng)定義為 void類型。 但僅有這一條件還不夠。 (3) 如果使用用戶自己定義的函數(shù),而且該函數(shù)與調(diào)用它的函數(shù)(即主調(diào)函數(shù))在同一個文件中,一般還應(yīng)該在主調(diào)函數(shù)中對被調(diào)用的函數(shù)作聲明,即向編譯系統(tǒng)聲明將要調(diào)用此函數(shù),并將有關(guān)信息通知編譯系統(tǒng)。 函數(shù)的 “聲明” ? 而“聲明” 則是 把函數(shù)的名字、函數(shù)類型以及形參的類型、個數(shù)和順序通知編譯系統(tǒng),以便在調(diào)用該函數(shù)時系統(tǒng)按此進(jìn)行對照檢查。 例 輸入兩個實數(shù), 用一個函數(shù)求出它們的和。 ? “定義”是 指對函數(shù)功能的確立, 也就是寫函數(shù)。 ? 而“聲明” 則是 把函數(shù)的名字、函數(shù)類型以及形參的類型、個數(shù)和順序通知編譯系統(tǒng),以便在調(diào)用該函數(shù)時系統(tǒng)按此進(jìn)行對照檢查。 函數(shù)原型 P182 ? 其實,在函數(shù)聲明中也可以不寫形參名,而只寫形參的類型。 在 C語言中,把以上形式的函數(shù)聲明稱為函數(shù)原型 (function prototype)。 它的作用主要是利用它在程序的編譯階段對調(diào)用函數(shù)的合法性進(jìn)行全面檢查。 也允許在函數(shù)原型中加上參數(shù)名,就成了第 (2)種形式。 上面程序中的聲明也可以寫成: float add(float, float)。 /* 參數(shù)名不用 x、 y,而用 a、 b */ 效果完全相同。 ? 例如 loat add( )。 ? 系統(tǒng)不檢查參數(shù)類型和參數(shù)個數(shù)。 (2) 如果被調(diào)用函數(shù)的定義出現(xiàn)在主調(diào)函數(shù)之前,可以不必加以聲明。 實際上,如果在函數(shù)調(diào)用之前,沒有對函數(shù)作聲明,則編譯系統(tǒng)會把笫一次遇到的該函數(shù)形式(函數(shù)定義或函數(shù)調(diào)用)作為函數(shù)的聲明,并將函數(shù)類型默認(rèn)為 int型。 include float add( float x, float y) {floatz; z= x+ y; return(z); } void main( ) {float a, b, c; scanf("% f,% f",& a,& b); c= add( a, b); printf("% f", c); } ( 3) 如果已在文件的開頭(所有函數(shù)定義之前),已對本文件中所調(diào)用的函數(shù)進(jìn)行了聲明,則在各個主調(diào)函數(shù)中不必對所調(diào)用的函數(shù)再作聲明 。 例如: char letter( char, char); /*以下 3行在所有函數(shù)之前 */ float f( float, float); /*且在函數(shù)外部 */ int i( float, float); void main() {…} /* 不必聲明它所調(diào)用的函數(shù) */ char letter( char c1, char c2) /*定義 letter函數(shù) */ {…} float f( float x, float y) /*定義 f函數(shù) */ {…} int i( float j, float k) /*定義 i函數(shù) */ {…} (4) 如果被調(diào)函數(shù)類型為整型,可以在函數(shù)調(diào)用前不必作函數(shù)聲明。 ? *為了程序清晰和安全,建議都加以聲明為好。 或 ? int max(int x, int y)。 ? C 語言中的函數(shù)不能嵌套定義。見圖 。 ? C 語言的特點之一就在于允許函數(shù)的遞歸調(diào)用。 ?間接遞歸調(diào)用: 在函數(shù) f1的函數(shù)體中要調(diào)用 f2函數(shù),而在函數(shù) f2的函數(shù)體中又要調(diào)用 f1函數(shù),如圖 。 ? 這可以用 if語句來控制, 只有在某一條件成立時才繼續(xù)執(zhí)行遞歸調(diào)用,否則就不再繼續(xù)。 問第 4個人歲數(shù),他說比第 3個人大 2歲。 問第 2個人, 說比第 1個人大 2歲。 請問第 5個人多大。 即 age( 5)= age( 4)+ 2 age( 4)= age( 3)+ 2 age( 3)= ag
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1